<?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>231185</bug_id>
          
          <creation_ts>2021-10-04 11:53:36 -0700</creation_ts>
          <short_desc>Add support for FileSystemSyncAccessHandle</short_desc>
          <delta_ts>2021-10-13 18:39:40 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=231413</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>231706</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sihui Liu">sihui_liu</reporter>
          <assigned_to name="Sihui Liu">sihui_liu</assigned_to>
          <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1800151</commentid>
    <comment_count>0</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-04 11:53:36 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800158</commentid>
    <comment_count>1</comment_count>
      <attachid>440085</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-04 12:12:10 -0700</bug_when>
    <thetext>Created attachment 440085
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800160</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-04 12:12:49 -0700</bug_when>
    <thetext>&lt;rdar://problem/83847859&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800162</commentid>
    <comment_count>3</comment_count>
      <attachid>440086</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-04 12:15:47 -0700</bug_when>
    <thetext>Created attachment 440086
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800227</commentid>
    <comment_count>4</comment_count>
      <attachid>440086</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-04 14:42:21 -0700</bug_when>
    <thetext>Comment on attachment 440086
Patch

Looks good overall, some comments below.

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        https://github.com/WICG/file-system-access/blob/main/AccessHandle.md

Different API so probably would requite an additional experimental feature flag.

&gt; Source/WebCore/Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp:42
&gt; +    , m_identifier(identifier)

Typed identifier?
Given it seems like there will be only one sync handle at a time, network process could generate this identifier and give it a type.

&gt; Source/WebKit/NetworkProcess/storage/FileSystemStorageHandle.h:66
&gt; +    uint64_t m_nextAccessHandleIdentifier { 1 };

Best as an ObjectIdentifier but otherwise we usually set it to 0 and pre increment it before using it.

&gt; Source/WebKit/WebProcess/WebCoreSupport/WebFileSystemStorageConnection.cpp:156
&gt; +            return completionHandler(WebCore::Exception { convertToExceptionCode(error.value()) });

Could write a static routine that would convert std::optional&lt;Error&gt; into ExceptionOr&lt;void&gt;, then you could just write completionHandle(myRoutine(WTFMove(result))) here and below VoidCallback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800497</commentid>
    <comment_count>5</comment_count>
      <attachid>440193</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-05 03:33:11 -0700</bug_when>
    <thetext>Created attachment 440193
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800588</commentid>
    <comment_count>6</comment_count>
      <attachid>440224</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-05 09:33:31 -0700</bug_when>
    <thetext>Created attachment 440224
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800613</commentid>
    <comment_count>7</comment_count>
      <attachid>440226</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-05 10:02:47 -0700</bug_when>
    <thetext>Created attachment 440226
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800625</commentid>
    <comment_count>8</comment_count>
      <attachid>440230</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-05 10:20:36 -0700</bug_when>
    <thetext>Created attachment 440230
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800634</commentid>
    <comment_count>9</comment_count>
      <attachid>440233</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-05 10:37:42 -0700</bug_when>
    <thetext>Created attachment 440233
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800656</commentid>
    <comment_count>10</comment_count>
      <attachid>440233</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-05 11:17:13 -0700</bug_when>
    <thetext>Comment on attachment 440233
Patch

Looks almost ready, WPE bot is failing though.
Also, I think the idea is to keep the file opened, or that there is a buffer somewhere in network process, so that flush has a use.

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

&gt; Source/WebCore/Modules/filesystemaccess/FileSystemFileHandle.idl:34
&gt; +    [Exposed=Worker] Promise&lt;FileSystemSyncAccessHandle&gt; createSyncAccessHandle();

Should be runtime enabled, or moved to something like FileSystemFileHandle+SyncAccess.idl

&gt; Source/WebCore/Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp:51
&gt; +        m_source-&gt;close(m_identifier, [](auto) { });

We could do that a bit earlier if it were a ContextDestructionObserver.
That might be better than to wait for GC.

&gt; Source/WebKit/NetworkProcess/storage/FileSystemStorageHandle.cpp:162
&gt; +    if (!m_activeSyncAccessHandle || m_activeSyncAccessHandle.value() != accessHandleIdentifier)

I would tend to use the shorter *m_activeSyncAccessHandle syntax

&gt; Source/WebKit/NetworkProcess/storage/FileSystemStorageHandle.cpp:181
&gt; +    auto closeFileScope = makeScopeExit([&amp;] {

Shouldn&apos;t the FileSystemSyncAccessHandleIdentifier keep the file opened so that it gets faster?
And to be able to write to it progressively?

&gt; Source/WebKit/NetworkProcess/storage/FileSystemStorageHandle.cpp:205
&gt; +    auto result = FileSystem::flushFile(handle);

Why doing flush on a just opened file?

&gt; Source/WebKit/NetworkProcess/storage/FileSystemStorageManager.cpp:31
&gt; +#include &lt;wtf/Scope.h&gt;

Needed?

&gt; Source/WebKit/WebProcess/WebCoreSupport/WebStorageConnection.cpp:59
&gt; +            return completionHandler(convertToExceptionOr(result.error()).releaseException());

I would be tempted to add two routines, one for Error and one for std::optional&lt;Error&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800669</commentid>
    <comment_count>11</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-05 11:33:17 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #10)
&gt; Comment on attachment 440233 [details]
&gt; Patch
&gt; 
&gt; Looks almost ready, WPE bot is failing though.
&gt; Also, I think the idea is to keep the file opened, or that there is a buffer
&gt; somewhere in network process, so that flush has a use.

The WPE fix seems to be trivial so I thought I will just let the bots run the tests first :P.
Yes, the idea is to keep the file opened once when the handle created for reads and writes. Since read and write are not included in this patch, I try to make the patch self contained by not adding that (since why would we need to keep file open when we just need to get the size, etc.)

&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=440233&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/filesystemaccess/FileSystemFileHandle.idl:34
&gt; &gt; +    [Exposed=Worker] Promise&lt;FileSystemSyncAccessHandle&gt; createSyncAccessHandle();
&gt; 
&gt; Should be runtime enabled, or moved to something like
&gt; FileSystemFileHandle+SyncAccess.idl

Sure.

&gt; 
&gt; &gt; Source/WebCore/Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp:51
&gt; &gt; +        m_source-&gt;close(m_identifier, [](auto) { });
&gt; 
&gt; We could do that a bit earlier if it were a ContextDestructionObserver.
&gt; That might be better than to wait for GC.

I guess I can make it ContextDestructionObserver.

&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/storage/FileSystemStorageHandle.cpp:162
&gt; &gt; +    if (!m_activeSyncAccessHandle || m_activeSyncAccessHandle.value() != accessHandleIdentifier)
&gt; 
&gt; I would tend to use the shorter *m_activeSyncAccessHandle syntax

Okay.

&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/storage/FileSystemStorageHandle.cpp:181
&gt; &gt; +    auto closeFileScope = makeScopeExit([&amp;] {
&gt; 
&gt; Shouldn&apos;t the FileSystemSyncAccessHandleIdentifier keep the file opened so
&gt; that it gets faster?
&gt; And to be able to write to it progressively?

Yes, it should. But since write is not included in the patch yet, I just close the file after operation.

&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/storage/FileSystemStorageHandle.cpp:205
&gt; &gt; +    auto result = FileSystem::flushFile(handle);
&gt; 
&gt; Why doing flush on a just opened file?

Good point, this should be a no-op for now.

&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/storage/FileSystemStorageManager.cpp:31
&gt; &gt; +#include &lt;wtf/Scope.h&gt;
&gt; 
&gt; Needed?

ah will remove.

&gt; 
&gt; &gt; Source/WebKit/WebProcess/WebCoreSupport/WebStorageConnection.cpp:59
&gt; &gt; +            return completionHandler(convertToExceptionOr(result.error()).releaseException());
&gt; 
&gt; I would be tempted to add two routines, one for Error and one for
&gt; std::optional&lt;Error&gt;

Okay.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800710</commentid>
    <comment_count>12</comment_count>
      <attachid>440248</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-05 12:42:50 -0700</bug_when>
    <thetext>Created attachment 440248
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800718</commentid>
    <comment_count>13</comment_count>
      <attachid>440252</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-05 12:55:30 -0700</bug_when>
    <thetext>Created attachment 440252
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800737</commentid>
    <comment_count>14</comment_count>
      <attachid>440233</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-05 13:51:18 -0700</bug_when>
    <thetext>Comment on attachment 440233
Patch

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

&gt;&gt;&gt; Source/WebCore/Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp:51
&gt;&gt;&gt; +        m_source-&gt;close(m_identifier, [](auto) { });
&gt;&gt; 
&gt;&gt; We could do that a bit earlier if it were a ContextDestructionObserver.
&gt;&gt; That might be better than to wait for GC.
&gt; 
&gt; I guess I can make it ContextDestructionObserver.

If we are going to make this ContextDestructionObserver, we might want to make FileSystemHandle ContextDestructionObserver as well (It currently does not keep track of context, so there is nothing to pass to FileSystemSyncAccessHandle.)
Try not introduce another another change in this, I will follow up in https://bugs.webkit.org/show_bug.cgi?id=231250.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800800</commentid>
    <comment_count>15</comment_count>
      <attachid>440280</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-05 15:27:20 -0700</bug_when>
    <thetext>Created attachment 440280
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801169</commentid>
    <comment_count>16</comment_count>
      <attachid>440280</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-06 10:37:38 -0700</bug_when>
    <thetext>Comment on attachment 440280
Patch

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

&gt; Source/WebCore/Modules/filesystemaccess/FileSystemFileHandle.idl:34
&gt; +    [EnabledBySetting=AccessHandleEnabled, Exposed=Worker] Promise&lt;FileSystemSyncAccessHandle&gt; createSyncAccessHandle();

If we want to expose FileSystemFileHandle in service workers, we need to make sure createSyncAccessHandle is not exposed.
Worth writing a test.

&gt; LayoutTests/storage/filesystemaccess/resources/sync-access-handle-basics.js:5
&gt; +description(&quot;This test checks basic funtionalities of FileSystemSyncAccessHandle.&quot;);

Seems like they could be WPT tests that we could at some point upstream</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801272</commentid>
    <comment_count>17</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-06 12:54:05 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #16)
&gt; Comment on attachment 440280 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=440280&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/filesystemaccess/FileSystemFileHandle.idl:34
&gt; &gt; +    [EnabledBySetting=AccessHandleEnabled, Exposed=Worker] Promise&lt;FileSystemSyncAccessHandle&gt; createSyncAccessHandle();
&gt; 
&gt; If we want to expose FileSystemFileHandle in service workers, we need to
&gt; make sure createSyncAccessHandle is not exposed.
&gt; Worth writing a test.

We seem to not support [Exposed=DedicatedWorker] on function yet; and partial interface is not supported on inherited class. I am not sure how to enable it in dedicated worker now; filed https://bugs.webkit.org/show_bug.cgi?id=231317 as a reminder for me.

&gt; 
&gt; &gt; LayoutTests/storage/filesystemaccess/resources/sync-access-handle-basics.js:5
&gt; &gt; +description(&quot;This test checks basic funtionalities of FileSystemSyncAccessHandle.&quot;);
&gt; 
&gt; Seems like they could be WPT tests that we could at some point upstream

WPT have the AccessHandle tests, but they are dependent on some other interfaces like directory iteration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801281</commentid>
    <comment_count>18</comment_count>
      <attachid>440421</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-06 13:03:35 -0700</bug_when>
    <thetext>Created attachment 440421
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801283</commentid>
    <comment_count>19</comment_count>
      <attachid>440423</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-06 13:06:11 -0700</bug_when>
    <thetext>Created attachment 440423
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801307</commentid>
    <comment_count>20</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-06 13:29:52 -0700</bug_when>
    <thetext>ChangeLog entry in LayoutTests/ChangeLog contains OOPS!.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801363</commentid>
    <comment_count>21</comment_count>
      <attachid>440441</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-06 14:53:35 -0700</bug_when>
    <thetext>Created attachment 440441
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801398</commentid>
    <comment_count>22</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-06 15:58:52 -0700</bug_when>
    <thetext>Committed r283676 (242614@main): &lt;https://commits.webkit.org/242614@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 440441.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440085</attachid>
            <date>2021-10-04 12:12:10 -0700</date>
            <delta_ts>2021-10-04 12:15:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231185-20211004121209.patch</filename>
            <type>text/plain</type>
            <size>79479</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNDc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDlmMGNlOGI3ODFkYzQ4NGJiMzc3NThi
NzM0MzUzZDI2NzE3OTA4OTUuLmM0MWE1ODRiNmUwN2RjOTM0NGU3OWIxMDMxMjMwNDcyYjhkZjA0
MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMTAtMDQgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzExODUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHd0Zi9GaWxlU3lzdGVtLmg6CisgICAgICAgICogd3RmL2dsaWIvRmlsZVN5c3RlbUdsaWIu
Y3BwOgorICAgICAgICAoV1RGOjpGaWxlU3lzdGVtSW1wbDo6Zmx1c2hGaWxlKToKKyAgICAgICAg
KiB3dGYvcG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNwcDoKKyAgICAgICAgKFdURjo6RmlsZVN5c3Rl
bUltcGw6OmZsdXNoRmlsZSk6CisgICAgICAgICogd3RmL3dpbi9GaWxlU3lzdGVtV2luLmNwcDoK
KyAgICAgICAgKFdURjo6RmlsZVN5c3RlbUltcGw6OmZsdXNoRmlsZSk6CisKIDIwMjEtMTAtMDMg
IERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBXVEY6OlJldGFp
blB0cjw+IGFsbG93cyBhc3NpZ25tZW50IG9mIHR3byBwb2ludGVyIHR5cGVzIHRoYXQgYXJlIG5v
dCBhc3NpZ25hYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTNiZDk3Nzc0OTYwZjNhZDcwYTRhNDJlZjMwNjhl
NzhmNmMzZDgzYi4uNDBiNGZkNWEyZGE4Mzk2MjkzNWE5ZTlkODRmYmIzNDkxOGFhNGM2MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDIxLTEwLTA0ICBTaWh1aSBMaXUgIDxzaWh1aV9s
aXVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjMxMTg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW1wbGVtZW50IGJhc2ljIHN1cHBvcnQgZm9yIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
IGFzIHByb3Bvc2FsOgorICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vV0lDRy9maWxlLXN5c3Rl
bS1hY2Nlc3MvYmxvYi9tYWluL0FjY2Vzc0hhbmRsZS5tZAorCisgICAgICAgIEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlIGNhbiBiZSBjcmVhdGVkIHZpYSBGaWxlU3lzdGVtRmlsZUhhbmRsZSwg
YW5kIGl0IGNvbW11aWNhdGVzIHdpdGggYmFja2VuZCB2aWEgCisgICAgICAgIEZpbGVTeXN0ZW1G
aWxlSGFuZGxlLgorCisgICAgICAgIFRlc3Q6IHN0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5j
LWFjY2Vzcy1oYW5kbGUtYmFzaWNzLXdvcmtlci5odG1sCisKKyAgICAgICAgKiBIZWFkZXJzLmNt
YWtlOgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNv
dXJjZXMubWFrZToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bUZpbGVIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6
OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZp
bGVIYW5kbGU6OmdldFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5k
bGU6OnRydW5jYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpm
bHVzaCk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y2xvc2UpOgor
ICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5o
OgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRs
ZS5pZGw6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUpOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6On5GaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZTo6dHJ1bmNhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU6OmdldFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU6OmZsdXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlOjpjbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZTo6ZGlkQ2xvc2UpOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRsOiBBZGRlZC4KKyAgICAgICAg
KiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbjo6c2NvcGVDbG9zZWQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpyZW1vdmVFbnRyeSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNvbXBsZXRlSW50ZWdlckNhbGxiYWNrKToKKyAg
ICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y29tcGxl
dGVWb2lkQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6
OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Z2V0U2l6ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnRydW5jYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Zmx1c2gp
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpj
bG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b246OmRpZFJlbW92ZUVudHJ5KTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg6CisgICAgICAgICog
U291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaDoKKwogMjAyMS0x
MC0wMyAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSUZD
XSBMaW5lIGZ1bmN0aW9ucyBjYW4gY29tcHV0ZSB0aGUgImV4dHJhIGhvcml6b250YWwgc3BhY2Ui
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IGQxMzBjYjlmZjBhYTY1MWJkMzA4ZjA5Yzc4ZjQ1ZWI3Yzk1MDZiMmEuLjJk
NjBmYzc1YTQ0NGM5NzU5YzE1ZTExYzEyZDc0ZmVlMjY1NTI1MTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNDQgQEAKKzIwMjEtMTAtMDQgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisK
KyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzExODUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHkgd2Ug
b25seSBhbGxvdyBvbmUgb3BlbiBhY2Nlc3MgaGFuZGxlIG9uIG9uZSBmaWxlLiBTZWNvbmQgYWNj
ZXNzIGhhbmRsZSBjYW4gYmUgY3JlYXRlZCBhZnRlciB0aGUgZmlyc3QKKyAgICAgICAgaXMgY2xv
c2VkLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFn
ZUVycm9yLmg6CisgICAgICAgIChXZWJLaXQ6OmNvbnZlcnRUb0V4Y2VwdGlvbkNvZGUpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Y3JlYXRlU3luY0Fj
Y2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpn
ZXRTaXplKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OnRydW5j
YXRlKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmZsdXNoKToK
KyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmNsb3NlKToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmg6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXI6OmNvbm5lY3Rp
b25DbG9zZWQpOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXI6OmFj
cXVpcmVMb2NrRm9yRmlsZSk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlTWFu
YWdlcjo6cmVsZWFzZUxvY2tGb3JGaWxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9y
YWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1N0b3JhZ2VNYW5hZ2VyOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpnZXRTaXplRm9yQWNjZXNzSGFuZGxlKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjp0cnVuY2F0ZUZvckFjY2Vzc0hh
bmRsZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Zmx1c2hGb3JB
Y2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmNs
b3NlQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdv
cmtTdG9yYWdlTWFuYWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0
d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpyZW1vdmVFbnRyeSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlU3lu
Y0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbjo6Z2V0U2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbjo6dHJ1bmNhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb246OmZsdXNoKToKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpjbG9zZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaDoKKwogMjAyMS0xMC0wMyAgRGF2
aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFdURjo6UmV0YWluUHRy
PD4gYWxsb3dzIGFzc2lnbm1lbnQgb2YgdHdvIHBvaW50ZXIgdHlwZXMgdGhhdCBhcmUgbm90IGFz
c2lnbmFibGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uaCBiL1NvdXJj
ZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uaAppbmRleCBjNDUwMWQxNGE3NDJhYTIxZmE2ZGM3YTczZjgz
MDllYzZhODdmNGQ1Li5iMTA3MzcwNjk4ZTFhZDFkYTc5NGE3ZTQ2NmNjMDA3MTJhN2Q4NjY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9GaWxlU3lzdGVtLmgKKysrIGIvU291cmNlL1dURi93
dGYvRmlsZVN5c3RlbS5oCkBAIC0xNTQsNiArMTU0LDcgQEAgV1RGX0VYUE9SVF9QUklWQVRFIHZv
aWQgY2xvc2VGaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSYpOwogLy8gUmV0dXJucyB0aGUgcmVzdWx0
aW5nIG9mZnNldCBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGZpbGUgaWYgc3VjY2Vzc2Z1bCwg
LTEgb3RoZXJ3aXNlLgogV1RGX0VYUE9SVF9QUklWQVRFIGxvbmcgbG9uZyBzZWVrRmlsZShQbGF0
Zm9ybUZpbGVIYW5kbGUsIGxvbmcgbG9uZyBvZmZzZXQsIEZpbGVTZWVrT3JpZ2luKTsKIFdURl9F
WFBPUlRfUFJJVkFURSBib29sIHRydW5jYXRlRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUsIGxvbmcg
bG9uZyBvZmZzZXQpOworV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgZmx1c2hGaWxlKFBsYXRmb3Jt
RmlsZUhhbmRsZSk7CiAvLyBSZXR1cm5zIG51bWJlciBvZiBieXRlcyBhY3R1YWxseSByZWFkIGlm
IHN1Y2Nlc3NmdWwsIC0xIG90aGVyd2lzZS4KIFdURl9FWFBPUlRfUFJJVkFURSBpbnQgd3JpdGVU
b0ZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlLCBjb25zdCB2b2lkKiBkYXRhLCBpbnQgbGVuZ3RoKTsK
IC8vIFJldHVybnMgbnVtYmVyIG9mIGJ5dGVzIGFjdHVhbGx5IHdyaXR0ZW4gaWYgc3VjY2Vzc2Z1
bCwgLTEgb3RoZXJ3aXNlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvZ2xpYi9GaWxlU3lz
dGVtR2xpYi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcAppbmRl
eCA1NDYyNDRjNzA0MTA4NGNiNGI0MmU5ZjBhYWViYThhMjYyOTAzZmQzLi5mODEyN2YwYmEwZjQ0
ZTQ5ZWYyODU5ZTE1MTgwMDhjMWIzMDQ4NDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9n
bGliL0ZpbGVTeXN0ZW1HbGliLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL0ZpbGVTeXN0
ZW1HbGliLmNwcApAQCAtMjEzLDYgKzIxMywxMSBAQCBib29sIHRydW5jYXRlRmlsZShQbGF0Zm9y
bUZpbGVIYW5kbGUgaGFuZGxlLCBsb25nIGxvbmcgb2Zmc2V0KQogICAgIHJldHVybiBnX3NlZWth
YmxlX3RydW5jYXRlKEdfU0VFS0FCTEUoZ19pb19zdHJlYW1fZ2V0X291dHB1dF9zdHJlYW0oR19J
T19TVFJFQU0oaGFuZGxlKSkpLCBvZmZzZXQsIG51bGxwdHIsIG51bGxwdHIpOwogfQogCitib29s
IGZsdXNoRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlKQoreworICAgIHJldHVybiBnX291
dHB1dF9zdHJlYW1fZmx1c2goZ19pb19zdHJlYW1fZ2V0X291dHB1dF9zdHJlYW0oR19JT19TVFJF
QU0oaGFuZGxlKSksIG51bGxwdHIsIG51bGxwdHIpOworfQorCiBpbnQgd3JpdGVUb0ZpbGUoUGxh
dGZvcm1GaWxlSGFuZGxlIGhhbmRsZSwgY29uc3Qgdm9pZCogZGF0YSwgaW50IGxlbmd0aCkKIHsK
ICAgICBpZiAoIWxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3Bvc2l4L0ZpbGVT
eXN0ZW1QT1NJWC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9wb3NpeC9GaWxlU3lzdGVtUE9TSVguY3Bw
CmluZGV4IGIxMzM4MjRlYzJhMTE1ZWE1MGM3YzM0ZTBmMWE1ZWNlODA0MDJkNGMuLjc5NTY3MGZk
NmQ4MDI3OGRmNmMxNzBiMjE2MmM0OGI1MmU5Y2JiZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvcG9zaXgv
RmlsZVN5c3RlbVBPU0lYLmNwcApAQCAtMTE4LDYgKzExOCwxMSBAQCBib29sIHRydW5jYXRlRmls
ZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlLCBsb25nIGxvbmcgb2Zmc2V0KQogICAgIHJldHVy
biAhZnRydW5jYXRlKGhhbmRsZSwgb2Zmc2V0KTsKIH0KIAorYm9vbCBmbHVzaEZpbGUoUGxhdGZv
cm1GaWxlSGFuZGxlIGhhbmRsZSkKK3sKKyAgICByZXR1cm4gIWZzeW5jKGhhbmRsZSk7Cit9CisK
IGludCB3cml0ZVRvRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlLCBjb25zdCB2b2lkKiBk
YXRhLCBpbnQgbGVuZ3RoKQogewogICAgIGRvIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L3dpbi9GaWxlU3lzdGVtV2luLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3dpbi9GaWxlU3lzdGVtV2lu
LmNwcAppbmRleCBmZmE2MjkzYzczZTg0ZWVlMGJjZTEyY2M0ZDBkYTdjZGNhNjBiODkzLi4yYmM4
ZjIwMTA1MWM3ZDg1YjE3YjQ0YWMyNzM4ZDJlZDAxZjJkOTRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi93aW4vRmlsZVN5c3RlbVdpbi5jcHAKKysrIGIvU291cmNlL1dURi93dGYvd2luL0Zp
bGVTeXN0ZW1XaW4uY3BwCkBAIC0zMDMsNiArMzAzLDEyIEBAIGJvb2wgdHJ1bmNhdGVGaWxlKFBs
YXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUsIGxvbmcgbG9uZyBvZmZzZXQpCiAgICAgcmV0dXJuIFNl
dEZpbGVJbmZvcm1hdGlvbkJ5SGFuZGxlKGhhbmRsZSwgRmlsZUVuZE9mRmlsZUluZm8sICZlb2ZJ
bmZvLCBzaXplb2YoRklMRV9FTkRfT0ZfRklMRV9JTkZPKSk7CiB9CiAKK2Jvb2wgZmx1c2hGaWxl
KFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUpCit7CisgICAgLy8gTm90IGltcGxlbWVudGVkLgor
ICAgIHJldHVybiBmYWxzZTsKK30KKwogaW50IHdyaXRlVG9GaWxlKFBsYXRmb3JtRmlsZUhhbmRs
ZSBoYW5kbGUsIGNvbnN0IHZvaWQqIGRhdGEsIGludCBsZW5ndGgpCiB7CiAgICAgaWYgKCFpc0hh
bmRsZVZhbGlkKGhhbmRsZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5w
dXQueGNmaWxlbGlzdAppbmRleCA5ODJkZmE2MzVlNTZhZTJiYTkzNTUyMTlkNTg2ZjI3NzBjYzM5
ZDdjLi43MTE4NTU3NzAxMTcyNTVjNWU1YzI1ZmU2ZTMxMDk5YmIyY2NhZWI5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTEyNiw2ICsx
MjYsNyBAQCAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2ZldGNoL1dpbmRvd09yV29ya2VyR2xvYmFs
U2NvcGUrRmV0Y2guaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5pZGwKICQoUFJPSkVDVF9ESVIpL01v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmlkbAorJChQUk9KRUNUX0RJ
UikvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlk
bAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1N0b3JhZ2VNYW5hZ2Vy
K0ZpbGVTeXN0ZW1BY2Nlc3MuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2dhbWVwYWQvR2Ft
ZXBhZC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkQnV0dG9uLmlk
bApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmls
ZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApp
bmRleCAyNmNhZjU4NjQwNTg4ZWY1M2ZhMzQ0Yjk0MWEyYTNkNGM0MzUyYjcyLi5jYzZhNzE5YjE1
Y2JjZjVkNDkyNTA1NDA3ZmMzZjVhNjZhYWNkNmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtOTA3LDYgKzkwNyw4IEBAICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRmlsZVN5c3RlbUZpbGVI
YW5kbGUuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTRmlsZVN5c3RlbUhhbmRsZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRmlsZVN5c3RlbUhhbmRsZS5oCiskKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0ZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0ZpbGxNb2RlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNGaWxsTW9kZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0ZvY3VzRXZlbnQuY3BwCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZQppbmRleCA0MzE5MWI2YmU3NDNlNzY4ZWY1NTYyYTg3YTMxODYzMThhMGNl
MDYxLi4wMGI3NWJkNzc0ZWJiOTQ1NDgyZDlhYWY2MTBlYjE1MGUwOWFjMzEwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTE1NSw2ICsxNTUsNyBAQCBKU19CSU5ESU5HX0lETFMg
Oj0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1E
aXJlY3RvcnlIYW5kbGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5pZGwgXAogICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1N0b3JhZ2VNYW5hZ2VyK0ZpbGVT
eXN0ZW1BY2Nlc3MuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFk
LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dhbWVwYWQvR2FtZXBhZEJ1dHRvbi5pZGwg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UKaW5kZXggMzk0Y2IzYmI2ZTFhMzI3MjQ5NTFiMjI2NTdlZDk1OTlm
ZDM3OGY4Mi4uOWE1OWMzMGI5NTJkMjFlNDY2NDZmZTYxOGI1Yzc0YTY5ZTVhZjM3YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlCkBAIC00Miw2ICs0Miw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVX
T1JLX0hFQURFUlMKICAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRs
ZS5oCiAgICAgTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyLmgKICAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uLmgKKyAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGUuaAogICAgIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9TdG9yYWdlTWFuYWdlckZp
bGVTeXN0ZW1BY2Nlc3MuaAogICAgIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAogICAgIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9X
b3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb25DYWxsYmFja0lkZW50aWZpZXIuaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1GaWxlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKaW5kZXggYjIxMjU0N2I1ZmU5YjliZDI1NjdmYjFi
MDk0ODBiYmRkMGYxOWY2Ny4uNzY2OWUxYjYzNjFkNDExNGY0NzlmODA2NjQxYzE1OWFhNjRiZTJj
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1GaWxlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCkBAIC0yNyw3ICsyNyw5IEBACiAj
aW5jbHVkZSAiRmlsZVN5c3RlbUZpbGVIYW5kbGUuaCIKIAogI2luY2x1ZGUgIkZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
LmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRlICJKU0ZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDksNSArNTEsNDEgQEAgdm9pZCBGaWxlU3lz
dGVtRmlsZUhhbmRsZTo6Z2V0RmlsZShET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZp
bGU+PiYmIHByb20KICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRF
cnJvciwgIk5vdCBpbXBsZW1lbnRlZCJfcyB9KTsKIH0KIAordm9pZCBGaWxlU3lzdGVtRmlsZUhh
bmRsZTo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZShET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJm
YWNlPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPj4mJiBwcm9taXNlKQoreworICAgIGNvbm5l
Y3Rpb24oKS5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlKGlkZW50aWZpZXIoKSwgW3Byb3RlY3RlZFRo
aXMgPSBSZWYgeyAqdGhpcyB9LCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1
bHQpIG11dGFibGUgeworICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQorICAgICAg
ICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOwor
CisgICAgICAgIHByb21pc2Uuc2V0dGxlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjcmVh
dGUocHJvdGVjdGVkVGhpcy5nZXQoKSwgcmVzdWx0LnJldHVyblZhbHVlKCkpKTsKKyAgICB9KTsK
K30KKwordm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Z2V0U2l6ZSh1aW50NjRfdCBhY2Nlc3NI
YW5kbGVJZGVudGlmaWVyLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMVW5zaWduZWRMb25nTG9uZz4m
JiBwcm9taXNlKQoreworICAgIGNvbm5lY3Rpb24oKS5nZXRTaXplKGlkZW50aWZpZXIoKSwgYWNj
ZXNzSGFuZGxlSWRlbnRpZmllciwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJl
c3VsdCkgbXV0YWJsZSB7CisgICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7
CisgICAgfSk7Cit9CisKK3ZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OnRydW5jYXRlKHVpbnQ2
NF90IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBET01Q
cm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQoreworICAgIGNvbm5lY3Rpb24oKS50cnVu
Y2F0ZShpZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHNpemUsIFtwcm9taXNl
ID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgICAgICBwcm9t
aXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOworICAgIH0pOworfQorCit2b2lkIEZpbGVTeXN0
ZW1GaWxlSGFuZGxlOjpmbHVzaCh1aW50NjRfdCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBET01Q
cm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQoreworICAgIGNvbm5lY3Rpb24oKS5mbHVz
aChpZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFtwcm9taXNlID0gV1RGTW92
ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgICAgICBwcm9taXNlLnNldHRs
ZShXVEZNb3ZlKHJlc3VsdCkpOworICAgIH0pOworfQorCit2b2lkIEZpbGVTeXN0ZW1GaWxlSGFu
ZGxlOjpjbG9zZSh1aW50NjRfdCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorewor
ICAgIGNvbm5lY3Rpb24oKS5jbG9zZShpZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCmluZGV4IDI1MDA1YzIxMzM4YmU3ODZh
OTlmMjBiOGZhYWRlM2MxMmE3YWRjZDUuLjkyNjZiMTgyNzZmOGRmYjNkYTAwYmVhMDEzNWY4ZTJm
MDMwNDIzMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCkBAIC0zMCw2ICszMCw4IEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZpbGU7CitjbGFzcyBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZTsKK3RlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKIAog
Y2xhc3MgRmlsZVN5c3RlbUZpbGVIYW5kbGUgZmluYWwgOiBwdWJsaWMgRmlsZVN5c3RlbUhhbmRs
ZSB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChGaWxlU3lzdGVtRmlsZUhhbmRsZSk7CkBA
IC0zNyw2ICszOSwxMiBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxG
aWxlU3lzdGVtRmlsZUhhbmRsZT4gY3JlYXRlKFN0cmluZyYmLCBGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJik7CiAgICAgdm9pZCBn
ZXRGaWxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZT4+JiYpOwogCisgICAg
dm9pZCBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZh
Y2U8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+PiYmKTsKKyAgICB2b2lkIHRydW5jYXRlKHVp
bnQ2NF90IGlkZW50aWZpZXIsIHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBET01Qcm9taXNlRGVm
ZXJyZWQ8dm9pZD4mJik7CisgICAgdm9pZCBnZXRTaXplKHVpbnQ2NF90IGlkZW50aWZpZXIsIERP
TVByb21pc2VEZWZlcnJlZDxJRExVbnNpZ25lZExvbmdMb25nPiYmKTsKKyAgICB2b2lkIGZsdXNo
KHVpbnQ2NF90IGlkZW50aWZpZXIsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKyAgICB2
b2lkIGNsb3NlKHVpbnQ2NF90IGlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhj
ZXB0aW9uT3I8dm9pZD4mJik+JiYpOworCiBwcml2YXRlOgogICAgIEZpbGVTeXN0ZW1GaWxlSGFu
ZGxlKFN0cmluZyYmLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbj4mJik7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5pZGwK
aW5kZXggOWU2YWE4ODU2ZWQ5N2I2Y2JhNDYzODUwNWFmYWExZTU1YTZkOTVmNS4uYzEzOTJmNTUx
NjY4MzU3OGM0YTQ4MmYxYTZkOTA4OGE4NGM5MWFhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVI
YW5kbGUuaWRsCkBAIC0yMywxMSArMjMsMTMgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KICAqLwogCisvLyBodHRwczovL3dpY2cuZ2l0aHViLmlvL2ZpbGUtc3lzdGVtLWFj
Y2Vzcy8jYXBpLWZpbGVzeXN0ZW1oYW5kbGUKKwogWwogICAgIEVuYWJsZWRCeVNldHRpbmc9Rmls
ZVN5c3RlbUFjY2Vzc0VuYWJsZWQsCiAgICAgRXhwb3NlZD0oV2luZG93LFdvcmtlciksCiAgICAg
U2VjdXJlQ29udGV4dAogXSBpbnRlcmZhY2UgRmlsZVN5c3RlbUZpbGVIYW5kbGUgOiBGaWxlU3lz
dGVtSGFuZGxlIHsKICAgICBQcm9taXNlPEZpbGU+IGdldEZpbGUoKTsKLSAgICAvLyBGSVhNRTog
YWRkIFByb21pc2U8RmlsZVN5c3RlbVdyaXRhYmxlRmlsZVN0cmVhbT4gY3JlYXRlV3JpdGFibGUo
b3B0aW9uYWwgRmlsZVN5c3RlbUNyZWF0ZVdyaXRhYmxlT3B0aW9ucyBvcHRpb25zKTsKKyAgICBb
RXhwb3NlZD1Xb3JrZXJdIFByb21pc2U8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+IGNyZWF0
ZVN5bmNBY2Nlc3NIYW5kbGUoKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uLmgKaW5kZXggZTYwNWE2N2Q5MmFiNDM2ZmQ2NDgzZTM3OGI2ZjYzOGI0ZDgxYWEwZC4u
YWQ0YmIzZmMxYmYwNmJlMDVhNmYyZDNmNzQ0ZGE3NDU4NDA4YThiOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9G
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaApAQCAtMzgsMTUgKzM4LDIzIEBAIHRlbXBsYXRl
PHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKIGNsYXNzIEZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24+IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5GaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24oKSB7IH0KKwogICAgIHVzaW5nIFNhbWVFbnRyeUNhbGxiYWNrID0gQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChFeGNlcHRpb25Pcjxib29sPiYmKT47CiAgICAgdXNpbmcgR2V0SGFuZGxlQ2Fs
bGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPEZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyPiYmKT47Ci0gICAgdXNpbmcgUmVtb3ZlRW50cnlDYWxsYmFjayA9IENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+OwogICAgIHVzaW5nIFJlc29s
dmVDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8VmVjdG9yPFN0
cmluZz4+JiYpPjsKKyAgICB1c2luZyBWb2lkQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPjsKKyAgICB1c2luZyBJbnRlZ2VyQ2FsbGJhY2sgPSBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHVpbnQ2NF90PiYmKT47CisKICAgICB2
aXJ0dWFsIHZvaWQgaXNTYW1lRW50cnkoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBTYW1lRW50cnlDYWxsYmFjayYmKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIGdldEZpbGVIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgR2V0SGFuZGxlQ2FsbGJhY2sm
JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBnZXREaXJlY3RvcnlIYW5kbGUoRmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2Fy
eSwgR2V0SGFuZGxlQ2FsbGJhY2smJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVFbnRy
eShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRl
bGV0ZVJlY3Vyc2l2ZWx5LCBSZW1vdmVFbnRyeUNhbGxiYWNrJiYpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgcmVtb3ZlRW50cnkoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgVm9pZENhbGxiYWNrJiYpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgcmVzb2x2ZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIsIFJlc29sdmVDYWxsYmFjayYmKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIs
IEludGVnZXJDYWxsYmFjayYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldFNpemUoRmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIsIHVpbnQ2NF90IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIElu
dGVnZXJDYWxsYmFjayYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHRydW5jYXRlKEZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1aW50
NjRfdCBzaXplLCBWb2lkQ2FsbGJhY2smJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBmbHVzaChG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3QgYWNjZXNzSGFuZGxlSWRlbnRpZmll
ciwgVm9pZENhbGxiYWNrJiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoRmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIsIHVpbnQ2NF90IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFZvaWRD
YWxsYmFjayYmKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MzVhMTM4NjRkMDgz
YTA1NjkxY2FjNWFmZDUxYTMwYWIxNGZjZmNjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
LmNwcApAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgiCisKKyNpbmNsdWRlICJCdWZm
ZXJTb3VyY2UuaCIKKyNpbmNsdWRlICJGaWxlU3lzdGVtRmlsZUhhbmRsZS5oIgorI2luY2x1ZGUg
IkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y3Jl
YXRlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiBzb3VyY2UsIHVpbnQ2NF90IGlkZW50aWZpZXIpCit7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoc291
cmNlLCBpZGVudGlmaWVyKSk7Cit9CisKK0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtRmlsZUhhbmRsZSYgc291cmNlLCB1aW50
NjRfdCBpZGVudGlmaWVyKQorICAgIDogbV9zb3VyY2Uoc291cmNlKQorICAgICwgbV9pZGVudGlm
aWVyKGlkZW50aWZpZXIpCit7Cit9CisKK0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjp+Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoKQoreworICAgIGlmICghbV9pc0Nsb3NlZCkKKyAgICAg
ICAgbV9zb3VyY2UtPmNsb3NlKG1faWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChF
eGNlcHRpb25Pcjx2b2lkPiYmKT4geyB9KTsKK30KKwordm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZTo6dHJ1bmNhdGUodW5zaWduZWQgbG9uZyBsb25nIHNpemUsIERPTVByb21pc2VEZWZl
cnJlZDx2b2lkPiYmIHByb21pc2UpCit7CisgICAgbV9zb3VyY2UtPnRydW5jYXRlKG1faWRlbnRp
Zmllciwgc2l6ZSwgV1RGTW92ZShwcm9taXNlKSk7Cit9CisKK3ZvaWQgRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGU6OmdldFNpemUoRE9NUHJvbWlzZURlZmVycmVkPElETFVuc2lnbmVkTG9uZ0xv
bmc+JiYgcHJvbWlzZSkKK3sKKyAgICBtX3NvdXJjZS0+Z2V0U2l6ZShtX2lkZW50aWZpZXIsIFdU
Rk1vdmUocHJvbWlzZSkpOworfQorCit2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpm
bHVzaChET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQoreworICAgIG1fc291cmNl
LT5mbHVzaChtX2lkZW50aWZpZXIsIFdURk1vdmUocHJvbWlzZSkpOworfQorCit2b2lkIEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZShET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBw
cm9taXNlKQoreworICAgIGlmIChtX2lzQ2xvc2VkKQorICAgICAgICByZXR1cm4gcHJvbWlzZS5y
ZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CisKKyAgICBtX3NvdXJjZS0+
Y2xvc2UobV9pZGVudGlmaWVyLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHByb21p
c2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlm
ICh3ZWFrVGhpcykKKyAgICAgICAgICAgIHdlYWtUaGlzLT5kaWRDbG9zZSgpOworCisgICAgICAg
IHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7CisgICAgfSk7Cit9CisKK3ZvaWQgRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmRpZENsb3NlKCkKK3sKKyAgICBtX2lzQ2xvc2VkID0g
dHJ1ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZmMwNjZlOGIzMjUwNjEwMjY0ZDUyMDNiNDMy
MjIzNWI0MDBhYTFmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKQEAgLTAsMCArMSw1
OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiSURMVHlwZXMuaCIK
KyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IEZpbGVTeXN0ZW1GaWxlSGFuZGxlOwordGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIERPTVByb21p
c2VEZWZlcnJlZDsKKworY2xhc3MgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUgOiBwdWJsaWMg
UmVmQ291bnRlZDxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4sIHB1YmxpYyBDYW5NYWtlV2Vh
a1B0cjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4geworcHVibGljOgorICAgIHN0cnVjdCBG
aWxlc3lzdGVtUmVhZFdyaXRlT3B0aW9ucyB7CisgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBh
dDsKKyAgICB9OworCisgICAgc3RhdGljIFJlZjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4g
Y3JlYXRlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiwgdWludDY0X3QgaWRlbnRpZmllcik7CisgICAg
fkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKCk7CisKKyAgICB2b2lkIHRydW5jYXRlKHVuc2ln
bmVkIGxvbmcgbG9uZyBzaXplLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CisgICAgdm9p
ZCBnZXRTaXplKERPTVByb21pc2VEZWZlcnJlZDxJRExVbnNpZ25lZExvbmdMb25nPiYmKTsKKyAg
ICB2b2lkIGZsdXNoKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKyAgICB2b2lkIGNsb3Nl
KERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKyAgICB2b2lkIGRpZENsb3NlKCk7CisKK3By
aXZhdGU6CisgICAgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUZpbGVIYW5k
bGUmLCB1aW50NjRfdCBpZGVudGlmaWVyKTsKKworICAgIFJlZjxGaWxlU3lzdGVtRmlsZUhhbmRs
ZT4gbV9zb3VyY2U7CisgICAgdWludDY0X3QgbV9pZGVudGlmaWVyOworICAgIGJvb2wgbV9pc0Ns
b3NlZCB7IGZhbHNlIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40Njg2MzVhZjU3NDI0
N2JlNTNkMDJlYmFjZWQyMmRiMDc3YTJkZGQ4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
LmlkbApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRCeVNldHRp
bmc9RmlsZVN5c3RlbUFjY2Vzc0VuYWJsZWQsCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJs
ZSwKKyAgICBFeHBvc2VkPURlZGljYXRlZFdvcmtlciwKKyAgICBTZWN1cmVDb250ZXh0CitdIGlu
dGVyZmFjZSBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSB7CisgICAgUHJvbWlzZTx1bmRlZmlu
ZWQ+IHRydW5jYXRlKFtFbmZvcmNlUmFuZ2VdIHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplKTsKKyAg
ICBQcm9taXNlPHVuc2lnbmVkIGxvbmcgbG9uZz4gZ2V0U2l6ZSgpOworICAgIFByb21pc2U8dW5k
ZWZpbmVkPiBmbHVzaCgpOworICAgIFByb21pc2U8dW5kZWZpbmVkPiBjbG9zZSgpOworfTsKKwor
ZGljdGlvbmFyeSBGaWxlc3lzdGVtUmVhZFdyaXRlT3B0aW9ucyB7CisgICAgW0VuZm9yY2VSYW5n
ZV0gdW5zaWduZWQgbG9uZyBsb25nIGF0OworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggNDVlYjNlYzk1Yjc2NTFlN2MxNWUz
MGE2OTljNDc0YjY1NTJkNDNjZC4uNWI4ZmMwYTE5NzdlMTMwZjE4YzJjNDc5NWJjZjgzOTgzYWI1
NjE3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbi5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgdm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OnNjb3BlQ2xvc2VkKCkKICAgICBmb3IgKGF1dG8mIGNhbGxiYWNrIDogZ2V0SGFu
ZGxlQ2FsbGJhY2tzLnZhbHVlcygpKQogICAgICAgICBjYWxsYmFjayhFeGNlcHRpb24geyBJbnZh
bGlkU3RhdGVFcnJvciB9KTsKIAotICAgIGF1dG8gcmVtb3ZlRW50cnlDYWxsYmFja3MgPSBzdGQ6
OmV4Y2hhbmdlKG1fcmVtb3ZlRW50cnlDYWxsYmFja3MsIHsgfSk7CisgICAgYXV0byByZW1vdmVF
bnRyeUNhbGxiYWNrcyA9IHN0ZDo6ZXhjaGFuZ2UobV92b2lkQ2FsbGJhY2tzLCB7IH0pOwogICAg
IGZvciAoYXV0byYgY2FsbGJhY2sgOiByZW1vdmVFbnRyeUNhbGxiYWNrcy52YWx1ZXMoKSkKICAg
ICAgICAgY2FsbGJhY2soRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CiAKQEAgLTE0
NywxOSArMTQ3LDE5IEBAIHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpk
aWRHZXRIYW5kbGUoQ2FsbGJhY2tJZGVudGlmaWVyIGNhbGxiYWNrCiAgICAgICAgIGNhbGxiYWNr
KFdURk1vdmUocmVzdWx0KSk7CiB9CiAKLXZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpyZW1vdmVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHksIEZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6UmVtb3ZlRW50cnlDYWxsYmFjayYmIGNhbGxiYWNrKQordm9pZCBX
b3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnJlbW92ZUVudHJ5KEZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxl
dGVSZWN1cnNpdmVseSwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2sm
JiBjYWxsYmFjaykKIHsKICAgICBpZiAoIW1fc2NvcGUpCiAgICAgICAgIHJldHVybiBjYWxsYmFj
ayhFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKIAogICAgIGF1dG8gY2FsbGJhY2tJ
ZGVudGlmaWVyID0gQ2FsbGJhY2tJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUoKTsKLSAg
ICBtX3JlbW92ZUVudHJ5Q2FsbGJhY2tzLmFkZChjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUo
Y2FsbGJhY2spKTsKKyAgICBtX3ZvaWRDYWxsYmFja3MuYWRkKGNhbGxiYWNrSWRlbnRpZmllciwg
V1RGTW92ZShjYWxsYmFjaykpOwogCiAgICAgY2FsbE9uTWFpblRocmVhZChbY2FsbGJhY2tJZGVu
dGlmaWVyLCB3b3JrZXJUaHJlYWQgPSBSZWYgeyBtX3Njb3BlLT50aHJlYWQoKSB9LCBtYWluVGhy
ZWFkQ29ubmVjdGlvbiA9IG1fbWFpblRocmVhZENvbm5lY3Rpb24sIGlkZW50aWZpZXIsIG5hbWUg
PSBuYW1lLmlzb2xhdGVkQ29weSgpLCBkZWxldGVSZWN1cnNpdmVseV0oKSBtdXRhYmxlIHsKICAg
ICAgICAgYXV0byBtYWluVGhyZWFkQ2FsbGJhY2sgPSBbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3Jr
ZXJUaHJlYWQgPSBXVEZNb3ZlKHdvcmtlclRocmVhZCldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsK
ICAgICAgICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbY2Fs
bGJhY2tJZGVudGlmaWVyLCByZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0KV0gKGF1dG8m
IHNjb3BlKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBpZiAoYXV0byBjb25uZWN0aW9uID0g
ZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5maWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24oKSkKLSAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+ZGlkUmVtb3ZlRW50cnko
Y2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAgICAgICAgICAg
ICBjb25uZWN0aW9uLT5jb21wbGV0ZVZvaWRDYWxsYmFjayhjYWxsYmFja0lkZW50aWZpZXIsIFdU
Rk1vdmUocmVzdWx0KSk7CiAgICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9k
ZSgpKTsKICAgICAgICAgfTsKIApAQCAtMTY3LDEyICsxNjcsNiBAQCB2b2lkIFdvcmtlckZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6cmVtb3ZlRW50cnkoRmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIgaQogICAgIH0pOwogfQogCi12b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbjo6ZGlkUmVtb3ZlRW50cnkoQ2FsbGJhY2tJZGVudGlmaWVyIGNhbGxiYWNrSWRlbnRpZmll
ciwgRXhjZXB0aW9uT3I8dm9pZD4mJiByZXN1bHQpCi17Ci0gICAgaWYgKGF1dG8gY2FsbGJhY2sg
PSBtX3JlbW92ZUVudHJ5Q2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJZGVudGlmaWVyKSkKLSAgICAg
ICAgY2FsbGJhY2soV1RGTW92ZShyZXN1bHQpKTsKLX0KLQogdm9pZCBXb3JrZXJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb246OnJlc29sdmUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRl
bnRpZmllciwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgb3RoZXJJZGVudGlmaWVyLCBGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlJlc29sdmVDYWxsYmFjayYmIGNhbGxiYWNrKQogewog
ICAgIGlmICghbV9zY29wZSkKQEAgLTE5OSw0ICsxOTMsMTE2IEBAIHZvaWQgV29ya2VyRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpkaWRSZXNvbHZlKENhbGxiYWNrSWRlbnRpZmllciBjYWxs
YmFja0lkCiAgICAgICAgIGNhbGxiYWNrKFdURk1vdmUocmVzdWx0KSk7CiB9CiAKK3ZvaWQgV29y
a2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjb21wbGV0ZUludGVnZXJDYWxsYmFjayhD
YWxsYmFja0lkZW50aWZpZXIgY2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25Pcjx1aW50NjRf
dD4mJiByZXN1bHQpCit7CisgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX2ludGVnZXJDYWxsYmFj
a3MudGFrZShjYWxsYmFja0lkZW50aWZpZXIpKQorICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKHJl
c3VsdCkpOworfQorCit2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y29t
cGxldGVWb2lkQ2FsbGJhY2soQ2FsbGJhY2tJZGVudGlmaWVyIGNhbGxiYWNrSWRlbnRpZmllciwg
RXhjZXB0aW9uT3I8dm9pZD4mJiByZXN1bHQpCit7CisgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBt
X3ZvaWRDYWxsYmFja3MudGFrZShjYWxsYmFja0lkZW50aWZpZXIpKQorICAgICAgICBjYWxsYmFj
ayhXVEZNb3ZlKHJlc3VsdCkpOworfQorCit2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkludGVnZXJDYWxsYmFj
ayYmIGNhbGxiYWNrKQoreworICAgIGlmICghbV9zY29wZSkKKyAgICAgICAgcmV0dXJuIGNhbGxi
YWNrKEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOworCisgICAgYXV0byBjYWxsYmFj
a0lkZW50aWZpZXIgPSBDYWxsYmFja0lkZW50aWZpZXI6OmdlbmVyYXRlVGhyZWFkU2FmZSgpOwor
ICAgIG1faW50ZWdlckNhbGxiYWNrcy5hZGQoY2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKGNh
bGxiYWNrKSk7CisKKyAgICBjYWxsT25NYWluVGhyZWFkKFtjYWxsYmFja0lkZW50aWZpZXIsIHdv
cmtlclRocmVhZCA9IFJlZiB7IG1fc2NvcGUtPnRocmVhZCgpIH0sIG1haW5UaHJlYWRDb25uZWN0
aW9uID0gbV9tYWluVGhyZWFkQ29ubmVjdGlvbiwgaWRlbnRpZmllcl0oKSBtdXRhYmxlIHsKKyAg
ICAgICAgYXV0byBtYWluVGhyZWFkQ2FsbGJhY2sgPSBbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3Jr
ZXJUaHJlYWQgPSBXVEZNb3ZlKHdvcmtlclRocmVhZCldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsK
KyAgICAgICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbY2Fs
bGJhY2tJZGVudGlmaWVyLCByZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0KV0gKGF1dG8m
IHNjb3BlKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBjb25uZWN0aW9uID0g
ZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5maWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24oKSkKKyAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+Y29tcGxldGVJbnRlZ2Vy
Q2FsbGJhY2soY2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAg
ICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CisgICAgICAgIH07CisKKyAgICAg
ICAgbWFpblRocmVhZENvbm5lY3Rpb24tPmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoaWRlbnRpZmll
ciwgV1RGTW92ZShtYWluVGhyZWFkQ2FsbGJhY2spKTsKKyAgICB9KTsKK30KKwordm9pZCBXb3Jr
ZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldFNpemUoRmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgdWludDY0X3QgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpJbnRlZ2VyQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sK
KyAgICBpZiAoIW1fc2NvcGUpCisgICAgICAgIHJldHVybiBjYWxsYmFjayhFeGNlcHRpb24geyBJ
bnZhbGlkU3RhdGVFcnJvciB9KTsKKworICAgIGF1dG8gY2FsbGJhY2tJZGVudGlmaWVyID0gQ2Fs
bGJhY2tJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUoKTsKKyAgICBtX2ludGVnZXJDYWxs
YmFja3MuYWRkKGNhbGxiYWNrSWRlbnRpZmllciwgV1RGTW92ZShjYWxsYmFjaykpOworCisgICAg
Y2FsbE9uTWFpblRocmVhZChbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQgPSBSZWYg
eyBtX3Njb3BlLT50aHJlYWQoKSB9LCBtYWluVGhyZWFkQ29ubmVjdGlvbiA9IG1fbWFpblRocmVh
ZENvbm5lY3Rpb24sIGlkZW50aWZpZXIsIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXJdKCkgbXV0YWJs
ZSB7CisgICAgICAgIGF1dG8gbWFpblRocmVhZENhbGxiYWNrID0gW2NhbGxiYWNrSWRlbnRpZmll
ciwgd29ya2VyVGhyZWFkID0gV1RGTW92ZSh3b3JrZXJUaHJlYWQpXShhdXRvIHJlc3VsdCkgbXV0
YWJsZSB7CisgICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1v
ZGUoW2NhbGxiYWNrSWRlbnRpZmllciwgcmVzdWx0ID0gY3Jvc3NUaHJlYWRDb3B5KHJlc3VsdCld
IChhdXRvJiBzY29wZSkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gY29ubmVj
dGlvbiA9IGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPihzY29wZSkuZmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uKCkpCisgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPmNvbXBsZXRl
SW50ZWdlckNhbGxiYWNrKGNhbGxiYWNrSWRlbnRpZmllciwgV1RGTW92ZShyZXN1bHQpKTsKKyAg
ICAgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOworICAgICAgICB9Owor
CisgICAgICAgIG1haW5UaHJlYWRDb25uZWN0aW9uLT5nZXRTaXplKGlkZW50aWZpZXIsIGFjY2Vz
c0hhbmRsZUlkZW50aWZpZXIsIFdURk1vdmUobWFpblRocmVhZENhbGxiYWNrKSk7CisgICAgfSk7
Cit9CisKK3ZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjp0cnVuY2F0ZShG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50NjRfdCBhY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXplLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246
OlZvaWRDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIGlmICghbV9zY29wZSkKKyAgICAgICAg
cmV0dXJuIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOworCisgICAg
YXV0byBjYWxsYmFja0lkZW50aWZpZXIgPSBDYWxsYmFja0lkZW50aWZpZXI6OmdlbmVyYXRlVGhy
ZWFkU2FmZSgpOworICAgIG1fdm9pZENhbGxiYWNrcy5hZGQoY2FsbGJhY2tJZGVudGlmaWVyLCBX
VEZNb3ZlKGNhbGxiYWNrKSk7CisKKyAgICBjYWxsT25NYWluVGhyZWFkKFtjYWxsYmFja0lkZW50
aWZpZXIsIHdvcmtlclRocmVhZCA9IFJlZiB7IG1fc2NvcGUtPnRocmVhZCgpIH0sIG1haW5UaHJl
YWRDb25uZWN0aW9uID0gbV9tYWluVGhyZWFkQ29ubmVjdGlvbiwgaWRlbnRpZmllciwgYWNjZXNz
SGFuZGxlSWRlbnRpZmllciwgc2l6ZV0oKSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byBtYWluVGhy
ZWFkQ2FsbGJhY2sgPSBbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQgPSBXVEZNb3Zl
KHdvcmtlclRocmVhZCldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgICAgIHdvcmtl
clRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbY2FsbGJhY2tJZGVudGlmaWVyLCBy
ZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0KV0gKGF1dG8mIHNjb3BlKSBtdXRhYmxlIHsK
KyAgICAgICAgICAgICAgICBpZiAoYXV0byBjb25uZWN0aW9uID0gZG93bmNhc3Q8V29ya2VyR2xv
YmFsU2NvcGU+KHNjb3BlKS5maWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oKSkKKyAgICAgICAg
ICAgICAgICAgICAgY29ubmVjdGlvbi0+Y29tcGxldGVWb2lkQ2FsbGJhY2soY2FsbGJhY2tJZGVu
dGlmaWVyLCBXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAgICAgfSwgV29ya2VyUnVuTG9vcDo6
ZGVmYXVsdE1vZGUoKSk7CisgICAgICAgIH07CisKKyAgICAgICAgbWFpblRocmVhZENvbm5lY3Rp
b24tPnRydW5jYXRlKGlkZW50aWZpZXIsIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHNpemUsIFdU
Rk1vdmUobWFpblRocmVhZENhbGxiYWNrKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV29ya2VyRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpmbHVzaChGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciBpZGVudGlmaWVyLCB1aW50NjRfdCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIGlmICgh
bV9zY29wZSkKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0
ZUVycm9yIH0pOworCisgICAgYXV0byBjYWxsYmFja0lkZW50aWZpZXIgPSBDYWxsYmFja0lkZW50
aWZpZXI6OmdlbmVyYXRlVGhyZWFkU2FmZSgpOworICAgIG1fdm9pZENhbGxiYWNrcy5hZGQoY2Fs
bGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisKKyAgICBjYWxsT25NYWluVGhy
ZWFkKFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFJlZiB7IG1fc2NvcGUtPnRo
cmVhZCgpIH0sIG1haW5UaHJlYWRDb25uZWN0aW9uID0gbV9tYWluVGhyZWFkQ29ubmVjdGlvbiwg
aWRlbnRpZmllciwgYWNjZXNzSGFuZGxlSWRlbnRpZmllcl0oKSBtdXRhYmxlIHsKKyAgICAgICAg
YXV0byBtYWluVGhyZWFkQ2FsbGJhY2sgPSBbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3JrZXJUaHJl
YWQgPSBXVEZNb3ZlKHdvcmtlclRocmVhZCldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAg
ICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbY2FsbGJhY2tJ
ZGVudGlmaWVyLCByZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0KV0gKGF1dG8mIHNjb3Bl
KSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBjb25uZWN0aW9uID0gZG93bmNh
c3Q8V29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5maWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24o
KSkKKyAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+Y29tcGxldGVWb2lkQ2FsbGJhY2so
Y2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAgICAgfSwgV29y
a2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CisgICAgICAgIH07CisKKyAgICAgICAgbWFpblRo
cmVhZENvbm5lY3Rpb24tPmZsdXNoKGlkZW50aWZpZXIsIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIs
IFdURk1vdmUobWFpblRocmVhZENhbGxiYWNrKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV29ya2Vy
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjbG9zZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciBpZGVudGlmaWVyLCB1aW50NjRfdCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIGlm
ICghbV9zY29wZSkKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IEludmFsaWRT
dGF0ZUVycm9yIH0pOworCisgICAgYXV0byBjYWxsYmFja0lkZW50aWZpZXIgPSBDYWxsYmFja0lk
ZW50aWZpZXI6OmdlbmVyYXRlVGhyZWFkU2FmZSgpOworICAgIG1fdm9pZENhbGxiYWNrcy5hZGQo
Y2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisKKyAgICBjYWxsT25NYWlu
VGhyZWFkKFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFJlZiB7IG1fc2NvcGUt
PnRocmVhZCgpIH0sIG1haW5UaHJlYWRDb25uZWN0aW9uID0gbV9tYWluVGhyZWFkQ29ubmVjdGlv
biwgaWRlbnRpZmllciwgYWNjZXNzSGFuZGxlSWRlbnRpZmllcl0oKSBtdXRhYmxlIHsKKyAgICAg
ICAgYXV0byBtYWluVGhyZWFkQ2FsbGJhY2sgPSBbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3JrZXJU
aHJlYWQgPSBXVEZNb3ZlKHdvcmtlclRocmVhZCldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAg
ICAgICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbY2FsbGJh
Y2tJZGVudGlmaWVyLCByZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0KV0gKGF1dG8mIHNj
b3BlKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBjb25uZWN0aW9uID0gZG93
bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5maWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24oKSkKKyAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+Y29tcGxldGVWb2lkQ2FsbGJh
Y2soY2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAgICAgfSwg
V29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CisgICAgICAgIH07CisKKyAgICAgICAgbWFp
blRocmVhZENvbm5lY3Rpb24tPmNsb3NlKGlkZW50aWZpZXIsIGFjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIsIFdURk1vdmUobWFpblRocmVhZENhbGxiYWNrKSk7CisgICAgfSk7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24uaAppbmRleCBlYzY5ZDE3NWEyZjc1OWYwNmIzZjFjNTQ3NDRkNzEwYzllNjFjM2Fj
Li4zZDU3MzM4OGU4ZDM4ZGU3NzFlOGEyYWQzNWRiYTY4MDNhYTY1ZGUzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCkBAIC00Niw4ICs0Niw5
IEBAIHB1YmxpYzoKICAgICB1c2luZyBDYWxsYmFja0lkZW50aWZpZXIgPSBXb3JrZXJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb25DYWxsYmFja0lkZW50aWZpZXI7CiAgICAgdm9pZCBkaWRJc1Nh
bWVFbnRyeShDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPGJvb2w+JiYpOwogICAgIHZv
aWQgZGlkR2V0SGFuZGxlKENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8RmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXI+JiYpOwotICAgIHZvaWQgZGlkUmVtb3ZlRW50cnkoQ2FsbGJhY2tJ
ZGVudGlmaWVyLCBFeGNlcHRpb25Pcjx2b2lkPiYmKTsKICAgICB2b2lkIGRpZFJlc29sdmUoQ2Fs
bGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxWZWN0b3I8U3RyaW5nPj4mJik7CisgICAgdm9p
ZCBjb21wbGV0ZVZvaWRDYWxsYmFjayhDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPHZv
aWQ+JiYgcmVzdWx0KTsKKyAgICB2b2lkIGNvbXBsZXRlSW50ZWdlckNhbGxiYWNrKENhbGxiYWNr
SWRlbnRpZmllciwgRXhjZXB0aW9uT3I8dWludDY0X3Q+JiYgcmVzdWx0KTsKIAogcHJpdmF0ZToK
ICAgICBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oV29ya2VyR2xvYmFsU2NvcGUm
LCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsKQEAgLTU2LDE1ICs1NywyMiBA
QCBwcml2YXRlOgogICAgIHZvaWQgaXNTYW1lRW50cnkoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b246OlNhbWVFbnRyeUNhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgZ2V0RmlsZUhhbmRsZShG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0
ZUlmTmVjZXNzYXJ5LCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhhbmRsZUNhbGxi
YWNrJiYpIGZpbmFsOwogICAgIHZvaWQgZ2V0RGlyZWN0b3J5SGFuZGxlKEZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3Nhcnks
IEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0SGFuZGxlQ2FsbGJhY2smJikgZmluYWw7
Ci0gICAgdm9pZCByZW1vdmVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OlJlbW92ZUVudHJ5Q2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCByZW1vdmVF
bnRyeShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29s
IGRlbGV0ZVJlY3Vyc2l2ZWx5LCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxs
YmFjayYmKSBmaW5hbDsKICAgICB2b2lkIHJlc29sdmUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b246OlJlc29sdmVDYWxsYmFjayYmKSBmaW5hbDsKIAorICAgIHZvaWQgY3JlYXRlU3luY0FjY2Vz
c0hhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpJbnRlZ2VyQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBnZXRTaXplKEZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkludGVnZXJDYWxsYmFjayYmKSBmaW5hbDsKKyAg
ICB2b2lkIHRydW5jYXRlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBhY2Nl
c3NIYW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXplLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb246OlZvaWRDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIGZsdXNoKEZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIGNs
b3NlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBhY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmKSBmaW5h
bDsKKwogICAgIFdlYWtQdHI8V29ya2VyR2xvYmFsU2NvcGU+IG1fc2NvcGU7CiAgICAgUmVmUHRy
PEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4gbV9tYWluVGhyZWFkQ29ubmVjdGlvbjsKICAg
ICBIYXNoTWFwPENhbGxiYWNrSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OjpTYW1lRW50cnlDYWxsYmFjaz4gbV9zYW1lRW50cnlDYWxsYmFja3M7CiAgICAgSGFzaE1hcDxD
YWxsYmFja0lkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0SGFuZGxl
Q2FsbGJhY2s+IG1fZ2V0SGFuZGxlQ2FsbGJhY2tzOwotICAgIEhhc2hNYXA8Q2FsbGJhY2tJZGVu
dGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlJlbW92ZUVudHJ5Q2FsbGJhY2s+
IG1fcmVtb3ZlRW50cnlDYWxsYmFja3M7CiAgICAgSGFzaE1hcDxDYWxsYmFja0lkZW50aWZpZXIs
IEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6UmVzb2x2ZUNhbGxiYWNrPiBtX3Jlc29sdmVD
YWxsYmFja3M7CisgICAgSGFzaE1hcDxDYWxsYmFja0lkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbjo6Vm9pZENhbGxiYWNrPiBtX3ZvaWRDYWxsYmFja3M7CisgICAgSGFzaE1h
cDxDYWxsYmFja0lkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6SW50ZWdl
ckNhbGxiYWNrPiBtX2ludGVnZXJDYWxsYmFja3M7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0CmluZGV4IGQ0ZWFlZGVmMWVhNTFkZThiMTExNmQyMDg3ZjJjNDBmNDUx
MWJlNzUuLmVjYTY5NTRiODljN2Q5MzJlODY5YjRiNzUzYzk5ZThjMzgxODE0Y2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CkBAIC02MSw2ICs2MSw3IEBAIE1vZHVsZXMvZmV0Y2gvV2luZG93T3JXb3JrZXJHbG9i
YWxTY29wZUZldGNoLmNwcAogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJl
Y3RvcnlIYW5kbGUuY3BwCiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVI
YW5kbGUuY3BwCiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5jcHAK
K01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAK
IE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24uY3BwCiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb05vdGlmaWVyLmNwcAogTW9kdWxlcy9nZW9s
b2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAKQEAgLTMwNDQsNiArMzA0NSw3IEBAIEpTRmlsZVN5c3Rl
bUVudHJ5Q2FsbGJhY2suY3BwCiBKU0ZpbGVTeXN0ZW1GaWxlRW50cnkuY3BwCiBKU0ZpbGVTeXN0
ZW1GaWxlSGFuZGxlLmNwcAogSlNGaWxlU3lzdGVtSGFuZGxlLmNwcAorSlNGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZS5jcHAKIEpTRmlsbE1vZGUuY3BwCiBKU0ZvY3VzRXZlbnQuY3BwCiBKU0Zv
Y3VzT3B0aW9ucy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCBlZDY1MGFlNjZjYWU1OTQ4OTNjYzRhYzNiZDBiODFkYjY5YTlk
MmMxLi5iNzdiMDk4MzgzYmQxNGM0NmEwZmNhNjY4OTM4ZTExN2Y2MGExM2E3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yOTYz
LDYgKzI5NjMsNyBAQAogCQk5M0Q2QjdBODI1NTFENDFGMDA1OEREM0EgLyogRHVtbXlTcGVlY2hS
ZWNvZ25pdGlvblByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5M0Q2QjdBNjI1NTFEM0VEMDA1OEREM0EgLyogRHVtbXlTcGVlY2hSZWNvZ25p
dGlvblByb3ZpZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJOTNEOUQ1M0MwREEyN0UxODAwNzcyMTZDIC8qIFJhbmdlQm91bmRhcnlQb2ludC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNEOUQ1M0Iw
REEyN0UxODAwNzcyMTZDIC8qIFJhbmdlQm91bmRhcnlQb2ludC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRTI0MUZGMEIyQjRFNDAwMEM3MzJB
MSAvKiBIVE1MRnJhbWVPd25lckVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTI0MUZFMEIyQjRFNDAwMEM3MzJBMSAvKiBIVE1MRnJhbWVP
d25lckVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQk5M0UyNjlBMjI3MEE1RDVEMDAyQzRGRjAgLyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
RTI2OTlGMjcwQTVENUMwMDJDNEZGMCAvKiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRTJBMzA3
MTIzRTlEQzAwMDlGRTEyQSAvKiBIVE1MUGFyc2VySWRpb21zLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0UyQTMwNTEyM0U5REMwMDA5RkUxMkEgLyog
SFRNTFBhcnNlcklkaW9tcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTkzRTVCMjY1MjQ1NUU5NkYwMDVDNTJEMCAvKiBBdHRyaWJ1dGVkU3RyaW5n
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0U1QjI2
MzI0NTVFOTZGMDA1QzUyRDAgLyogQXR0cmlidXRlZFN0cmluZy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRjE5OEU1MDgyNDVFNTkwMDFFOUFC
QyAvKiBIVE1MRG9jdW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY1MjNEMjNDMDJERTQzOTYwMTg2MzVDQSAvKiBIVE1MRG9jdW1lbnQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTE5OTIsNiAr
MTE5OTMsOSBAQAogCQk5M0UyMjdERjBBRjU4OUFEMDBENDgzMjQgLyogU3VicmVzb3VyY2VMb2Fk
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3VicmVzb3VyY2VM
b2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0UyNDFGRTBCMkI0RTQw
MDBDNzMyQTEgLyogSFRNTEZyYW1lT3duZXJFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEhUTUxGcmFtZU93bmVyRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5M0UyNDI1RTBCMkI1MDk1MDBDNzMyQTEgLyogSFRNTEZyYW1lT3duZXJFbGVt
ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxGcmFtZU93
bmVyRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRTI2OTlEMjcw
QTVENUIwMDJDNEZGMCAvKiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5M0UyNjk5RjI3MEE1RDVDMDAyQzRGRjAgLyogRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTNFMjY5QTAyNzBBNUQ1QzAwMkM0RkYwIC8qIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNFMkEzMDQxMjNF
OURDMDAwOUZFMTJBIC8qIEhUTUxQYXJzZXJJZGlvbXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSFRNTFBhcnNlcklkaW9tcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTkzRTJBMzA1MTIzRTlEQzAwMDlGRTEyQSAvKiBIVE1MUGFyc2VySWRpb21z
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxQYXJzZXJJZGlvbXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNFNUIyNTQyNDUzNkIxRTAwNUM1MkQwIC8q
IFVSTERlY29tcG9zaXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gVVJMRGVjb21wb3NpdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0y
MzQzMCw2ICsyMzQzNCw5IEBACiAJCQkJOTMyQzlCRDkyNkRENjI2MDAwNTNCM0RCIC8qIEZpbGVT
eXN0ZW1IYW5kbGUuaWRsICovLAogCQkJCTkzNTQyNDI3MjcwM0JDODgwMDVDQTcyQyAvKiBGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllci5oICovLAogCQkJCTkzNTQyNDI5MjcwM0JDQUQwMDVDQTcy
QyAvKiBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCAqLywKKwkJCQk5M0UyNjlBMDI3MEE1
RDVDMDAyQzRGRjAgLyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwICovLAorCQkJCTkz
RTI2OTlGMjcwQTVENUMwMDJDNEZGMCAvKiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oICov
LAorCQkJCTkzRTI2OTlEMjcwQTVENUIwMDJDNEZGMCAvKiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZS5pZGwgKi8sCiAJCQkJOTM0NDNFN0IyNkU4QTZCQzAwNTg1MzhGIC8qIFN0b3JhZ2VNYW5h
Z2VyK0ZpbGVTeXN0ZW1BY2Nlc3MuaWRsICovLAogCQkJCTkzNDQzRTdEMjZFOEE2QkMwMDU4NTM4
RiAvKiBTdG9yYWdlTWFuYWdlckZpbGVTeXN0ZW1BY2Nlc3MuaCAqLywKIAkJCQk5MzIzM0M4NTI3
MDU0Qzc4MDBCQkY0MUUgLyogV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcCAq
LywKQEAgLTMyNTQ2LDYgKzMyNTUzLDcgQEAKIAkJCQk5MzQ0M0U4ODI2RTk5NUM0MDA1ODUzOEYg
LyogRmlsZVN5c3RlbUhhbmRsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM1NDI0MkYyNzAzQ0E1
MTAwNUNBNzJDIC8qIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk5MzU0MjQzMDI3MDNDQjg2MDA1Q0E3MkMgLyogRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0UyNjlBMjI3MEE1RDVEMDAyQzRGRjAgLyogRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNUVCNjlGMEU4
MURBRUIwMEIyNTk2NSAvKiBGaWxsTGF5ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTcxMkJFNDgz
MUZFODY1REQwMDIwMzFDQyAvKiBGaWxsTW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODQ1RTcy
RjgwRkQyNjFFRTAwQTg3RDc5IC8qIEZpbHRlci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5kZXggZTgzNWRm
N2ZmMGIyMjBkZWJhMDU4ZmQzYTg0ZGY1ZDJjMjUxMzk1Yy4uMmJiOWE5MzliZmNiNmE5NzU4ODYy
Zjc4ODU2NmU3MmMwNGEwZTcwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1dlYkNvcmVCdWlsdGluTmFtZXMuaApAQCAtMTI0LDYgKzEyNCw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICBtYWNybyhGaWxlU3lzdGVtRmlsZUVudHJ5KSBcCiAgICAgbWFjcm8oRmlsZVN5
c3RlbUZpbGVIYW5kbGUpIFwKICAgICBtYWNybyhGaWxlU3lzdGVtSGFuZGxlKSBcCisgICAgbWFj
cm8oRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUpIFwKICAgICBtYWNybyhHYW1lcGFkKSBcCiAg
ICAgbWFjcm8oR2FtZXBhZEJ1dHRvbikgXAogICAgIG1hY3JvKEdhbWVwYWRFdmVudCkgXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3IuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxl
U3lzdGVtU3RvcmFnZUVycm9yLmgKaW5kZXggNDQzYzk1MTRjZDkzMjkxM2RkZTM0YzI3ZjZiNWI1
NzIwMWEwYTQxZi4uODU4NjU1NDA0YmQ2MTFhZDhmMjQ1NzMxYjM4MDBlNzNkMTMwYWI2MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oCkBAIC0zNCw2ICszNCw3IEBAIGVudW0gY2xhc3MgRmls
ZVN5c3RlbVN0b3JhZ2VFcnJvciA6IHVpbnQ4X3QgewogICAgIEZpbGVOb3RGb3VuZCwKICAgICBJ
bnZhbGlkTmFtZSwKICAgICBJbnZhbGlkTW9kaWZpY2F0aW9uLAorICAgIEludmFsaWRTdGF0ZSwK
ICAgICBUeXBlTWlzbWF0Y2gsCiAgICAgVW5rbm93bgogfTsKQEAgLTQ5LDYgKzUwLDggQEAgaW5s
aW5lIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgY29udmVydFRvRXhjZXB0aW9uQ29kZShGaWxlU3lz
dGVtU3RvcmFnZUVycm9yIGVycm8KICAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbkNv
ZGU6OlR5cGVFcnJvcjsKICAgICBjYXNlIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWRO
YW1lOgogICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uQ29kZTo6VW5rbm93bkVycm9y
OworICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxpZFN0YXRlOgorICAgICAg
ICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uQ29kZTo6SW52YWxpZFN0YXRlRXJyb3I7CiAgICAg
Y2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOgogICAgICAgICBicmVhazsKICAg
ICB9CkBAIC02Niw2ICs2OSw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViS2l0
OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiB7CiAgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcjo6RmlsZU5vdEZvdW5kLAogICAgICAgICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9y
YWdlRXJyb3I6OkludmFsaWROYW1lLAogICAgICAgICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I6OkludmFsaWRNb2RpZmljYXRpb24sCisgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcjo6SW52YWxpZFN0YXRlLAogICAgICAgICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9y
YWdlRXJyb3I6OlR5cGVNaXNtYXRjaCwKICAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFn
ZUVycm9yOjpVbmtub3duCiAgICAgPjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3BwCmlu
ZGV4IDIyYmMzZWY0ZWQyNzhhMTllMjQwNmM3OTQwY2ZiNmM4MzhkOTJkZWMuLjI1ZGQ3ODNmYWIy
ZjEwNDRmNTVjOGY1Y2M4MDYzZjliMjM2OWVjNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VF
cnJvci5oIgogI2luY2x1ZGUgIkZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oIgorI2luY2x1ZGUg
PHd0Zi9TY29wZS5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtMTM5LDQgKzE0MCw4NyBA
QCBFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGU6OnJlc29sdgogICAgIHJldHVybiByZXN0UGF0aC5zcGxpdChwYXRo
U2VwYXJhdG9yKTsKIH0KIAorRXhwZWN0ZWQ8dWludDY0X3QsIEZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKCkKK3sK
KyAgICBpZiAoIW1fbWFuYWdlcikKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24pOworCisgICAgYm9vbCBhY3F1aXJlZCA9IG1fbWFu
YWdlci0+YWNxdWlyZUxvY2tGb3JGaWxlKG1fcGF0aCwgbV9pZGVudGlmaWVyKTsKKyAgICBpZiAo
IWFjcXVpcmVkKQorICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvcjo6SW52YWxpZFN0YXRlKTsKKworICAgIEFTU0VSVCghbV9hY3RpdmVTeW5jQWNjZXNz
SGFuZGxlKTsKKyAgICBtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgPSBtX25leHRBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyOworICAgIHJldHVybiBtX25leHRBY2Nlc3NIYW5kbGVJZGVudGlmaWVyKys7
Cit9CisKK0V4cGVjdGVkPHVpbnQ2NF90LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZTo6Z2V0U2l6ZSh1aW50NjRfdCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVy
KQoreworICAgIGlmICghbV9tYW5hZ2VyKQorICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQo
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bik7CisKKyAgICBpZiAoIW1fYWN0aXZlU3lu
Y0FjY2Vzc0hhbmRsZSB8fCBtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUudmFsdWUoKSAhPSBhY2Nl
c3NIYW5kbGVJZGVudGlmaWVyKQorICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmlsZVN5
c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bik7CisKKyAgICBhdXRvIHNpemUgPSBGaWxlU3lzdGVt
OjpmaWxlU2l6ZShtX3BhdGgpOworICAgIGlmICghc2l6ZSkKKyAgICAgICAgcmV0dXJuIG1ha2VV
bmV4cGVjdGVkKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24pOworCisgICAgcmV0dXJu
IHNpemUudmFsdWUoKTsKK30KKworc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9y
PiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6dHJ1bmNhdGUodWludDY0X3QgYWNjZXNzSGFuZGxl
SWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSkKK3sKKyAgICBpZiAoIW1fbWFuYWdlcikKKyAgICAg
ICAgcmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd247CisKKyAgICBpZiAoIW1f
YWN0aXZlU3luY0FjY2Vzc0hhbmRsZSB8fCBtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUudmFsdWUo
KSAhPSBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKQorICAgICAgICByZXR1cm4gRmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcjo6VW5rbm93bjsKKworICAgIGF1dG8gaGFuZGxlID0gRmlsZVN5c3RlbTo6b3Bl
bkZpbGUobV9wYXRoLCBGaWxlU3lzdGVtOjpGaWxlT3Blbk1vZGU6OlJlYWRXcml0ZSk7CisgICAg
YXV0byBjbG9zZUZpbGVTY29wZSA9IG1ha2VTY29wZUV4aXQoWyZdIHsKKyAgICAgICAgRmlsZVN5
c3RlbTo6Y2xvc2VGaWxlKGhhbmRsZSk7CisgICAgfSk7CisKKyAgICBhdXRvIHJlc3VsdCA9IEZp
bGVTeXN0ZW06OnRydW5jYXRlRmlsZShoYW5kbGUsIHNpemUpOworICAgIGlmICghcmVzdWx0KQor
ICAgICAgICByZXR1cm4gRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bjsKKworICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7Cit9CisKK3N0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmZsdXNoKHVpbnQ2NF90IGFjY2Vzc0hhbmRs
ZUlkZW50aWZpZXIpCit7CisgICAgaWYgKCFtX21hbmFnZXIpCisgICAgICAgIHJldHVybiBGaWxl
U3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOworCisgICAgaWYgKCFtX2FjdGl2ZVN5bmNBY2Nl
c3NIYW5kbGUgfHwgbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlLnZhbHVlKCkgIT0gYWNjZXNzSGFu
ZGxlSWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVu
a25vd247CisKKyAgICBhdXRvIGhhbmRsZSA9IEZpbGVTeXN0ZW06Om9wZW5GaWxlKG1fcGF0aCwg
RmlsZVN5c3RlbTo6RmlsZU9wZW5Nb2RlOjpSZWFkV3JpdGUpOworICAgIGF1dG8gY2xvc2VGaWxl
U2NvcGUgPSBtYWtlU2NvcGVFeGl0KFsmXSB7CisgICAgICAgIEZpbGVTeXN0ZW06OmNsb3NlRmls
ZShoYW5kbGUpOworICAgIH0pOworCisgICAgYXV0byByZXN1bHQgPSBGaWxlU3lzdGVtOjpmbHVz
aEZpbGUoaGFuZGxlKTsKKyAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgcmV0dXJuIEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I6OlVua25vd247CisKKyAgICByZXR1cm4gc3RkOjpudWxsb3B0OworfQor
CitzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdl
SGFuZGxlOjpjbG9zZSh1aW50NjRfdCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKQoreworICAgIGlm
ICghbV9tYW5hZ2VyKQorICAgICAgICByZXR1cm4gRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5r
bm93bjsKKworICAgIGlmICghbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlIHx8IG1fYWN0aXZlU3lu
Y0FjY2Vzc0hhbmRsZS52YWx1ZSgpICE9IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpCisgICAgICAg
IHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOworCisgICAgbV9tYW5hZ2Vy
LT5yZWxlYXNlTG9ja0ZvckZpbGUobV9wYXRoLCBtX2lkZW50aWZpZXIpOworICAgIG1fYWN0aXZl
U3luY0FjY2Vzc0hhbmRsZSA9IHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmggYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUu
aAppbmRleCA4Nzk5MDkwN2Q5Yjg5YTUyM2Y3ZmYxZjU1MDcwYTU3MDY0MGFiM2IyLi42YjkwMzk4
ODliMWM3OTMyMTkwYjM2MThhNWM4YTI5NTQwMTVkMzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VI
YW5kbGUuaApAQCAtNDksNiArNDksMTIgQEAgcHVibGljOgogICAgIHN0ZDo6b3B0aW9uYWw8Rmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVtb3ZlRW50cnkoY29uc3QgU3RyaW5nJiBuYW1lLCBib29s
IGRlbGV0ZVJlY3Vyc2l2ZWx5KTsKICAgICBFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgRmlsZVN5
c3RlbVN0b3JhZ2VFcnJvcj4gcmVzb2x2ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
Zmllcik7CiAKKyAgICBFeHBlY3RlZDx1aW50NjRfdCwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4g
Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpOworICAgIEV4cGVjdGVkPHVpbnQ2NF90LCBGaWxlU3lz
dGVtU3RvcmFnZUVycm9yPiBnZXRTaXplKHVpbnQ2NF90IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIp
OworICAgIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gdHJ1bmNhdGUodWlu
dDY0X3QgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSk7CisgICAgc3RkOjpv
cHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBmbHVzaCh1aW50NjRfdCBhY2Nlc3NIYW5k
bGVJZGVudGlmaWVyKTsKKyAgICBzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+
IGNsb3NlKHVpbnQ2NF90IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpOworCiBwcml2YXRlOgogICAg
IEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVt
U3RvcmFnZUVycm9yPiByZXF1ZXN0Q3JlYXRlSGFuZGxlKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVl
SUQsIFR5cGUsIFN0cmluZyYmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnkpOwogCkBAIC01
Nyw2ICs2Myw4IEBAIHByaXZhdGU6CiAgICAgVHlwZSBtX3R5cGU7CiAgICAgU3RyaW5nIG1fcGF0
aDsKICAgICBTdHJpbmcgbV9uYW1lOworICAgIHVpbnQ2NF90IG1fbmV4dEFjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIgeyAxIH07CisgICAgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gbV9hY3RpdmVTeW5j
QWNjZXNzSGFuZGxlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVt
U3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IDFiN2E1MWEyZjY4ODQxNWMzOTZiNWI0OGZkYzA1Zjk5
NWZjNmQzZGUuLjk0OGVlYjdjMTcxNTVhMTM3MzgwZDdiZjY4MjA0MTI4NzRhNWI3YzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3Rv
cmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFn
ZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNs
dWRlICJGaWxlU3lzdGVtU3RvcmFnZUVycm9yLmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3Jh
Z2VIYW5kbGVSZWdpc3RyeS5oIgorI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIApAQCAtODcsMTUgKzg4LDIxIEBAIHZvaWQgRmlsZVN5c3RlbVN0b3JhZ2VNYW5h
Z2VyOjpjb25uZWN0aW9uQ2xvc2VkKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQgY29ubmVjCiB7
CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBhdXRvIGhhbmRsZXMgPSBt
X2hhbmRsZXNCeUNvbm5lY3Rpb24uZmluZChjb25uZWN0aW9uKTsKLSAgICBpZiAoaGFuZGxlcyA9
PSBtX2hhbmRsZXNCeUNvbm5lY3Rpb24uZW5kKCkpCisgICAgYXV0byBjb25uZWN0aW9uSGFuZGxl
cyA9IG1faGFuZGxlc0J5Q29ubmVjdGlvbi5maW5kKGNvbm5lY3Rpb24pOworICAgIGlmIChjb25u
ZWN0aW9uSGFuZGxlcyA9PSBtX2hhbmRsZXNCeUNvbm5lY3Rpb24uZW5kKCkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIGZvciAoYXV0byBoYW5kbGVJZGVudGlmaWVyIDogaGFuZGxlcy0+dmFsdWUp
IHsKLSAgICAgICAgYXV0byBoYW5kbGUgPSBtX2hhbmRsZXMudGFrZShoYW5kbGVJZGVudGlmaWVy
KTsKLSAgICAgICAgbV9yZWdpc3RyeS51bnJlZ2lzdGVySGFuZGxlKGhhbmRsZUlkZW50aWZpZXIp
OworICAgIGF1dG8gaWRlbnRpZmllcnMgPSBjb25uZWN0aW9uSGFuZGxlcy0+dmFsdWU7CisgICAg
Zm9yIChhdXRvIGlkZW50aWZpZXIgOiBpZGVudGlmaWVycykgeworICAgICAgICBhdXRvIGhhbmRs
ZSA9IG1faGFuZGxlcy50YWtlKGlkZW50aWZpZXIpOworICAgICAgICBtX3JlZ2lzdHJ5LnVucmVn
aXN0ZXJIYW5kbGUoaWRlbnRpZmllcik7CiAgICAgfQotICAgIG1faGFuZGxlc0J5Q29ubmVjdGlv
bi5yZW1vdmUoaGFuZGxlcyk7CisKKyAgICBtX2xvY2tNYXAucmVtb3ZlSWYoWyZpZGVudGlmaWVy
c10oYXV0byYgZW50cnkpIHsKKyAgICAgICAgcmV0dXJuIGlkZW50aWZpZXJzLmNvbnRhaW5zKGVu
dHJ5LnZhbHVlKTsKKyAgICB9KTsKKworICAgIG1faGFuZGxlc0J5Q29ubmVjdGlvbi5yZW1vdmUo
Y29ubmVjdGlvbkhhbmRsZXMpOwogfQogCiBFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VN
YW5hZ2VyOjpnZXREaXJlY3RvcnkoSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCBjb25uZWN0aW9u
KQpAQCAtMTA1LDQgKzExMiwyMyBAQCBFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbQogICAgIHJldHVy
biBjcmVhdGVIYW5kbGUoY29ubmVjdGlvbiwgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OlR5cGU6
OkRpcmVjdG9yeSwgU3RyaW5nIHsgbV9wYXRoIH0sIHsgfSwgdHJ1ZSk7CiB9CiAKK2Jvb2wgRmls
ZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOjphY3F1aXJlTG9ja0ZvckZpbGUoY29uc3QgU3RyaW5nJiBw
YXRoLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQorewor
ICAgIGlmIChtX2xvY2tNYXAuY29udGFpbnMocGF0aCkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIG1fbG9ja01hcC5hZGQocGF0aCwgaWRlbnRpZmllcik7CisgICAgcmV0dXJuIHRydWU7
Cit9CisKK2Jvb2wgRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOjpyZWxlYXNlTG9ja0ZvckZpbGUo
Y29uc3QgU3RyaW5nJiBwYXRoLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBp
ZGVudGlmaWVyKQoreworICAgIGlmIChhdXRvIGxvY2tlZEJ5SWRlbnRpZmllciA9IG1fbG9ja01h
cC5nZXQocGF0aCk7IGxvY2tlZEJ5SWRlbnRpZmllciA9PSBpZGVudGlmaWVyKSB7CisgICAgICAg
IG1fbG9ja01hcC5yZW1vdmUocGF0aCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKwor
ICAgIHJldHVybiBmYWxzZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VN
YW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3Rl
bVN0b3JhZ2VNYW5hZ2VyLmgKaW5kZXggOGI0MzhiMmU5M2RmNGE4NDQ3YzNiNzc0MGJjNTRjODdm
Y2E0MzE5Zi4uMWFlYmE5ZGFmNzk2OGM2OGQ4ZmU4YjNiZTdiNjc1NTI4M2Q3NjEzMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9y
YWdlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9G
aWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuaApAQCAtNDMsMTIgKzQzLDE1IEBAIHB1YmxpYzoKICAg
ICBjb25zdCBTdHJpbmcmIGdldFBhdGgoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIpOwogICAgIHZvaWQgY29ubmVjdGlvbkNsb3NlZChJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlE
KTsKICAgICBFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcj4gZ2V0RGlyZWN0b3J5KElQQzo6Q29ubmVjdGlvbjo6VW5pcXVl
SUQpOworICAgIGJvb2wgYWNxdWlyZUxvY2tGb3JGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCwgV2Vi
Q29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIpOworICAgIGJvb2wgcmVsZWFzZUxvY2tG
b3JGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIpOwogCiBwcml2YXRlOgogICAgIFN0cmluZyBtX3BhdGg7CiAgICAgRmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGVSZWdpc3RyeSYgbV9yZWdpc3RyeTsKICAgICBIYXNoTWFwPElQQzo6Q29ubmVj
dGlvbjo6VW5pcXVlSUQsIEhhc2hTZXQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXI+PiBtX2hhbmRsZXNCeUNvbm5lY3Rpb247CiAgICAgSGFzaE1hcDxXZWJDb3JlOjpGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPEZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlPj4gbV9oYW5kbGVzOworICAgIEhhc2hNYXA8U3RyaW5nLCBXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllcj4gbV9sb2NrTWFwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29y
a1N0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFn
ZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IDY3YWViYTUyMDZhNjYyYzYxZDliMGU1
NmQ1NTk1MDljYjEyYTUwMjUuLjE5NWRjYTVkNTA3MWZkYzk5NTNmMTQ3YjBiNWZhZjA5ZjRmOTky
NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3
b3JrU3RvcmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC0yMjYsNSArMjI2LDYwIEBAIHZv
aWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpyZXNvbHZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyIGlkZW50aWZpCiAgICAgY29tcGxldGlvbkhhbmRsZXIoaGFuZGxlLT5yZXNv
bHZlKHRhcmdldElkZW50aWZpZXIpKTsKIH0KIAordm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6
OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDx1aW50NjRfdCwg
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIEFT
U0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgYXV0byBoYW5kbGUgPSBtX2ZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnktPmdldEhhbmRsZShpZGVudGlmaWVyKTsKKyAgICBpZiAo
IWhhbmRsZSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKG1ha2VVbmV4cGVjdGVk
KEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24pKTsKKworICAgIGNvbXBsZXRpb25IYW5k
bGVyKGhhbmRsZS0+Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpKTsKK30KKwordm9pZCBOZXR3b3Jr
U3RvcmFnZU1hbmFnZXI6OmdldFNpemVGb3JBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgdWludDY0X3QgYWNjZXNzSGFuZGxlSWRlbnRp
ZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDx1aW50NjRfdCwgRmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIEFTU0VSVCghUnVu
TG9vcDo6aXNNYWluKCkpOworCisgICAgYXV0byBoYW5kbGUgPSBtX2ZpbGVTeXN0ZW1TdG9yYWdl
SGFuZGxlUmVnaXN0cnktPmdldEhhbmRsZShpZGVudGlmaWVyKTsKKyAgICBpZiAoIWhhbmRsZSkK
KyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKG1ha2VVbmV4cGVjdGVkKEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I6OlVua25vd24pKTsKKworICAgIGNvbXBsZXRpb25IYW5kbGVyKGhhbmRs
ZS0+Z2V0U2l6ZShhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSk7Cit9CisKK3ZvaWQgTmV0d29ya1N0
b3JhZ2VNYW5hZ2VyOjp0cnVuY2F0ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50NjRfdCBhY2Nlc3NIYW5kbGVJZGVudGlm
aWVyLCB1aW50NjRfdCBzaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIEFT
U0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgYXV0byBoYW5kbGUgPSBtX2ZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnktPmdldEhhbmRsZShpZGVudGlmaWVyKTsKKyAgICBpZiAo
IWhhbmRsZSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKEZpbGVTeXN0ZW1TdG9y
YWdlRXJyb3I6OlVua25vd24pOworCisgICAgY29tcGxldGlvbkhhbmRsZXIoaGFuZGxlLT50cnVu
Y2F0ZShhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBzaXplKSk7Cit9CisKK3ZvaWQgTmV0d29ya1N0
b3JhZ2VNYW5hZ2VyOjpmbHVzaEZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50NjRfdCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVy
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNN
YWluKCkpOworCisgICAgYXV0byBoYW5kbGUgPSBtX2ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVn
aXN0cnktPmdldEhhbmRsZShpZGVudGlmaWVyKTsKKyAgICBpZiAoIWhhbmRsZSkKKyAgICAgICAg
cmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24p
OworCisgICAgY29tcGxldGlvbkhhbmRsZXIoaGFuZGxlLT5mbHVzaChhY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyKSk7Cit9CisKK3ZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpjbG9zZUFjY2Vzc0hh
bmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50
NjRfdCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6
b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
eworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgYXV0byBoYW5kbGUgPSBt
X2ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnktPmdldEhhbmRsZShpZGVudGlmaWVyKTsK
KyAgICBpZiAoIWhhbmRsZSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKEZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24pOworCisgICAgY29tcGxldGlvbkhhbmRsZXIoaGFu
ZGxlLT5jbG9zZShhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3Jh
Z2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgKaW5kZXggMWI4MTBkZjc4ZDczZDJmZjA5
ZTg0ZGUyY2NiMjJiYTA2MTgwMTFjOC4uNTJjMzExYWFmMGRhZjJlYmY2ZTdjZTUxZDYwMDJjNGZk
ZTE3NzljYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdl
L05ldHdvcmtTdG9yYWdlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaApAQCAtNjksNiArNjksMTEgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGdldERpcmVjdG9yeUhhbmRsZShJUEM6OkNvbm5lY3Rpb24mLCBXZWJD
b3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgU3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVh
dGVJZk5lY2Vzc2FyeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsK
ICAgICB2b2lkIHJlbW92ZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHksIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwog
ICAgIHZvaWQgcmVzb2x2ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2Vi
Q29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
RXhwZWN0ZWQ8VmVjdG9yPFN0cmluZz4sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7Cisg
ICAgdm9pZCBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPHVpbnQ2NF90LCBGaWxl
U3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOworICAgIHZvaWQgZ2V0U2l6ZUZvckFjY2Vzc0hhbmRs
ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3QgYWNjZXNzSGFu
ZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDx1aW50NjRfdCwg
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKKyAgICB2b2lkIHRydW5jYXRlRm9yQWNjZXNz
SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBhY2Nl
c3NIYW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKKyAgICB2b2lkIGZs
dXNoRm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCB1
aW50NjRfdCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0
ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKKyAgICB2b2lkIGNsb3Nl
QWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCB1aW50NjRf
dCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0
aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKIAogICAgIFBBTDo6U2Vzc2lvbklE
IG1fc2Vzc2lvbklEOwogICAgIFJlZjxXb3JrUXVldWU+IG1fcXVldWU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2Vy
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdv
cmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCA2MmU3NDAzY2JiNzAwYWQ5NmJiZWJl
MGZlYjgyMDVjODE2MjI0ZmY3Li5jYzg3MzVkM2Y0NGVhNzk2ZjQwYWQzNTYzNzM0YTgzNzQ3NjIy
NWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0
d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTMy
LDQgKzMyLDEwIEBACiAgICAgR2V0RGlyZWN0b3J5SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0cmluZyBuYW1lLCBib29sIGNyZWF0ZUlmTmVj
ZXNzYXJ5KSAtPiAoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIs
IFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYyBXYW50c0Nvbm5l
Y3Rpb24KICAgICBSZW1vdmVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBTdHJpbmcgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSkgLT4gKHN0
ZDo6b3B0aW9uYWw8V2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5j
CiAgICAgUmVzb2x2ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlm
aWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciB0YXJnZXRJZGVudGlmaWVy
KSAtPiAoRXhwZWN0ZWQ8VmVjdG9yPFN0cmluZz4sIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcj4gcmVzdWx0KSBBc3luYworCisgICAgQ3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8dWlu
dDY0X3QsIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYworICAg
IEdldFNpemVGb3JBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgdWludDY0X3QgYWNjZXNzSGFuZGxlSWRlbnRpZmllcikgLT4gKEV4cGVj
dGVkPHVpbnQ2NF90LCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5
bmMKKyAgICBUcnVuY2F0ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50NjRfdCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1
aW50NjRfdCBzaXplKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I+IHJlc3VsdCkgQXN5bmMKKyAgICBGbHVzaEZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50NjRfdCBhY2Nlc3NIYW5k
bGVJZGVudGlmaWVyKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I+IHJlc3VsdCkgQXN5bmMKKyAgICBDbG9zZUFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50NjRfdCBhY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I+IHJlc3VsdCkgQXN5bmMKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5jcHAKaW5kZXggYjA1NGM5MjM4YmRkMmZjZWM4MTI5YjAzMDZiNTNiYmZiMWM3
ZGY5My4uYTVhYzE3YjBkMjNlNTAzYzhiMDMyNGE5YTYzMTdhOTY2YTI3MTk0ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAgLTk0LDcgKzk0
LDcgQEAgdm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldERpcmVjdG9yeUhh
bmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGwKICAgICB9KTsKIH0KIAotdm9pZCBXZWJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnJlbW92ZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxl
dGVSZWN1cnNpdmVseSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpSZW1v
dmVFbnRyeUNhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYkZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6cmVtb3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vy
c2l2ZWx5LCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFj
ayYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmICghbV9jb25uZWN0aW9uKQogICAgICAg
ICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6
VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0IiB9KTsKQEAgLTEyMCw0ICsxMjAsNjkg
QEAgdm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnJlc29sdmUoV2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIKICAgICB9KTsKIH0KIAordm9pZCBXZWJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpJbnRlZ2VyQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAo
IW1fY29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6
OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5lY3Rpb24gaXMgbG9zdCIg
fSk7CisKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0
d29ya1N0b3JhZ2VNYW5hZ2VyOjpDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKGlkZW50aWZpZXIpLCBb
Y29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byByZXN1
bHQpIG11dGFibGUgeworICAgICAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgICAgIHJldHVybiBj
b21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBjb252ZXJ0VG9FeGNlcHRpb25D
b2RlKHJlc3VsdC5lcnJvcigpKSB9KTsKKworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihyZXN1
bHQudmFsdWUoKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpnZXRTaXplKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVp
bnQ2NF90IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEludGVnZXJDYWxsYmFjayYmIGNvbXBsZXRp
b25IYW5kbGVyKQoreworICAgIGlmICghbV9jb25uZWN0aW9uKQorICAgICAgICByZXR1cm4gY29t
cGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9y
LCAiQ29ubmVjdGlvbiBpcyBsb3N0IiB9KTsKKworICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhB
c3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OkdldFNpemVGb3JBY2Nl
c3NIYW5kbGUoaWRlbnRpZmllciwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciksIFtjb21wbGV0aW9u
SGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIHJlc3VsdCkgbXV0YWJs
ZSB7CisgICAgICAgIGlmICghcmVzdWx0KQorICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25I
YW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IGNvbnZlcnRUb0V4Y2VwdGlvbkNvZGUocmVzdWx0
LmVycm9yKCkpIH0pOworCisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHJlc3VsdC52YWx1ZSgp
KTsKKyAgICB9KTsKK30KKwordm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnRy
dW5jYXRlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IGFj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIsIHVpbnQ2NF90IHNpemUsIFZvaWRDYWxsYmFjayYmIGNvbXBs
ZXRpb25IYW5kbGVyKQoreworICAgIGlmICghbV9jb25uZWN0aW9uKQorICAgICAgICByZXR1cm4g
Y29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVy
cm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0IiB9KTsKKworICAgIG1fY29ubmVjdGlvbi0+c2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OlRydW5jYXRlRm9y
QWNjZXNzSGFuZGxlKGlkZW50aWZpZXIsIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHNpemUpLCBb
Y29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byBlcnJv
cikgbXV0YWJsZSB7CisgICAgICAgIGlmIChlcnJvcikKKyAgICAgICAgICAgIHJldHVybiBjb21w
bGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBjb252ZXJ0VG9FeGNlcHRpb25Db2Rl
KGVycm9yLnZhbHVlKCkpIH0pOworCisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7Cisg
ICAgfSk7Cit9CisKK3ZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpmbHVzaChG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50NjRfdCBhY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLCBWb2lkQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBp
ZiAoIW1fY29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNv
cmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5lY3Rpb24gaXMgbG9z
dCIgfSk7CisKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpGbHVzaEZvckFjY2Vzc0hhbmRsZShpZGVudGlmaWVyLCBh
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyKSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcildKGF1dG8gZXJyb3IpIG11dGFibGUgeworICAgICAgICBpZiAoZXJyb3Ip
CisgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9u
IHsgY29udmVydFRvRXhjZXB0aW9uQ29kZShlcnJvci52YWx1ZSgpKSB9KTsKKworICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcih7IH0pOworICAgIH0pOworfQorCit2b2lkIFdlYkZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6Y2xvc2UoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRp
ZmllciwgdWludDY0X3QgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgVm9pZENhbGxiYWNrJiYgY29t
cGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVy
biBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpVbmtub3du
RXJyb3IsICJDb25uZWN0aW9uIGlzIGxvc3QiIH0pOworCisgICAgbV9jb25uZWN0aW9uLT5zZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Q2xvc2VBY2Nl
c3NIYW5kbGUoaWRlbnRpZmllciwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciksIFtjb21wbGV0aW9u
SGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIGVycm9yKSBtdXRhYmxl
IHsKKyAgICAgICAgaWYgKGVycm9yKQorICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5k
bGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IGNvbnZlcnRUb0V4Y2VwdGlvbkNvZGUoZXJyb3IudmFs
dWUoKSkgfSk7CisKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKKyAgICB9KTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uLmgKaW5kZXggYjYwMWJlNjQzNTNkYWZjNzc3YzZiY2U0MmIxZTlmMjkxMzky
MzBjMi4uYWVjY2EyMWY5ZGU5MWY2Y2Q1YjMxNGYwZDg4YzBlN2E5ODc0MTNlOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaApAQCAtNTEsOSArNTEsMTUg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGlzU2FtZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29y
ZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpTYW1lRW50cnlDYWxsYmFjayYmKTsKICAg
ICB2b2lkIGdldEZpbGVIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgV2ViQ29yZTo6Rmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRIYW5kbGVDYWxsYmFjayYmKTsKICAgICB2b2lk
IGdldERpcmVjdG9yeUhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBXZWJDb3JlOjpGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhhbmRsZUNhbGxiYWNrJiYpOwotICAgIHZvaWQg
cmVtb3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpSZW1vdmVFbnRyeUNhbGxiYWNrJiYpOworICAgIHZvaWQgcmVtb3Zl
RW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
bmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJik7CiAgICAgdm9pZCByZXNvbHZlKFdlYkNvcmU6OkZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpSZXNvbHZlQ2FsbGJh
Y2smJik7CiAKKyAgICB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6SW50ZWdl
ckNhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgZ2V0U2l6ZShGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgdWludDY0X3QgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpJbnRlZ2VyQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9p
ZCB0cnVuY2F0ZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3QgYWNjZXNzSGFu
ZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBmbHVzaChGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3QgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV2Vi
Q29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJikgZmluYWw7
CisgICAgdm9pZCBjbG9zZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3QgYWNj
ZXNzSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OjpWb2lkQ2FsbGJhY2smJikgZmluYWw7CisKICAgICBSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiBt
X2Nvbm5lY3Rpb247CiB9OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOTAxYzE3MjA1OWQ5ZDI4YTI4MzQ5NjRkNjgwZjgy
MjJjNGZlNjBiNi4uMjA5OTgyMTg0Y2M1MjM2ZjI0OTNjN2M5YWYyMGYzNDFhNWIwNGFiZiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTEwLTA0ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBw
bGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMx
MTg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBz
dG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2UvcmVzb3VyY2VzL2Rvd25sb2FkLXJvb3Rz
LnNoOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3MvcmVzb3VyY2Vz
L3N5bmMtYWNjZXNzLWhhbmRsZS1iYXNpY3MuanM6IEFkZGVkLgorICAgICAgICAoZmluaXNoVGVz
dCk6CisgICAgICAgIChnZXREaXJlY3RvcnkpOgorICAgICAgICAqIHN0b3JhZ2UvZmlsZXN5c3Rl
bWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtYmFzaWNzLXdvcmtlci1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHN0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5k
bGUtYmFzaWNzLXdvcmtlci5odG1sOiBBZGRlZC4KKwogMjAyMS0xMC0wMyAgU2ltb24gRnJhc2Vy
ICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjgzMzM1
KTogcnViYmVyLWJhbmRpbmcgbm8gbG9uZ2VyIGxvY2tzIHRvIGFuIGF4aXMKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvQ2hhbmdlTG9nCmluZGV4IGM4NTJhNzQ4NjEzNTZkZGZkYWE0YWYwMjNmZDc5YjgxNjNh
N2E4NGEuLjEyYjMzZWRkNDgyNGUyM2RmOWFhOTZkZWIyMmIzNjhiZTJhMTlkZmIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIxLTEwLTA0ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMTg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmlsZS1zeXN0ZW0tYWNjZXNz
L3NhbmRib3hlZF9GaWxlU3lzdGVtRmlsZUhhbmRsZS1zeW5jLWFjY2Vzcy1oYW5kbGUtbG9jay5o
dHRwcy50ZW50YXRpdmUud29ya2VyLWV4cGVjdGVkLnR4dDoKKwogMjAyMS0xMC0wMiAgTmlrb3Mg
TW91Y2h0YXJpcyAgPG5tb3VjaHRhcmlzQGFwcGxlLmNvbT4KIAogICAgICAgICBXUFRzIGZvciBo
eXBvdCxzcXJ0LHBvdyBjYWxjIGZ1bmN0aW9ucwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9maWxlLXN5c3RlbS1hY2Nlc3Mvc2FuZGJveGVk
X0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLXN5bmMtYWNjZXNzLWhhbmRsZS1sb2NrLmh0dHBzLnRlbnRh
dGl2ZS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9maWxlLXN5c3RlbS1hY2Nlc3Mvc2FuZGJveGVkX0ZpbGVTeXN0ZW1GaWxl
SGFuZGxlLXN5bmMtYWNjZXNzLWhhbmRsZS1sb2NrLmh0dHBzLnRlbnRhdGl2ZS53b3JrZXItZXhw
ZWN0ZWQudHh0CmluZGV4IGI0NjI4YTdkZjIyZGZlODhhN2IzNzEyZmZiMzY3ZGZjY2VlZTg3MDQu
LjdkYWRjMmQ0ZjA2ZDg0NGEyMTJmNjQwNGMwZDFhYjlmNTYzNzBjYjkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmlsZS1zeXN0ZW0tYWNj
ZXNzL3NhbmRib3hlZF9GaWxlU3lzdGVtRmlsZUhhbmRsZS1zeW5jLWFjY2Vzcy1oYW5kbGUtbG9j
ay5odHRwcy50ZW50YXRpdmUud29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZpbGUtc3lzdGVtLWFjY2Vzcy9zYW5kYm94
ZWRfRmlsZVN5c3RlbUZpbGVIYW5kbGUtc3luYy1hY2Nlc3MtaGFuZGxlLWxvY2suaHR0cHMudGVu
dGF0aXZlLndvcmtlci1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACiAKLUZBSUwgVGhlcmUg
Y2FuIG9ubHkgYmUgb25lIG9wZW4gYWNjZXNzIGhhbmRsZSBhdCBhbnkgZ2l2ZW4gdGltZSBwcm9t
aXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJy
b3I6IGZpbGVIYW5kbGUuY3JlYXRlU3luY0FjY2Vzc0hhbmRsZSBpcyBub3QgYSBmdW5jdGlvbi4g
KEluICdmaWxlSGFuZGxlLmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKScsICdmaWxlSGFuZGxlLmNy
ZWF0ZVN5bmNBY2Nlc3NIYW5kbGUnIGlzIHVuZGVmaW5lZCkiCi1GQUlMIEFuIGFjY2VzcyBoYW5k
bGUgZnJvbSBvbmUgZmlsZSBkb2VzIG5vdCBpbnRlcmZlcmUgd2l0aCB0aGUgY3JlYXRpb24gb2Yg
YW4gYWNjZXNzIGhhbmRsZSBvbiBhbm90aGVyIGZpbGUgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQg
cmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBmb29GaWxlSGFuZGxlLmNy
ZWF0ZVN5bmNBY2Nlc3NIYW5kbGUgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnZm9vRmlsZUhhbmRs
ZS5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlKCknLCAnZm9vRmlsZUhhbmRsZS5jcmVhdGVTeW5jQWNj
ZXNzSGFuZGxlJyBpcyB1bmRlZmluZWQpIgorUEFTUyBUaGVyZSBjYW4gb25seSBiZSBvbmUgb3Bl
biBhY2Nlc3MgaGFuZGxlIGF0IGFueSBnaXZlbiB0aW1lCitQQVNTIEFuIGFjY2VzcyBoYW5kbGUg
ZnJvbSBvbmUgZmlsZSBkb2VzIG5vdCBpbnRlcmZlcmUgd2l0aCB0aGUgY3JlYXRpb24gb2YgYW4g
YWNjZXNzIGhhbmRsZSBvbiBhbm90aGVyIGZpbGUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL3Jlc291cmNlcy9kb3dubG9hZC1yb290
cy5zaCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9yZXNv
dXJjZXMvZG93bmxvYWQtcm9vdHMuc2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGU1NTU3NTNhOTk2ODc2MTFmMjE3
YTdhZGJjZGQ4MjRmNmEwZjAxYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9yZXNvdXJjZXMvZG93bmxvYWQtcm9vdHMuc2gK
QEAgLTAsMCArMSwyMyBAQAorIyEvdXNyL2Jpbi9lbnYgYmFzaAorCitpZiBbWyAkIyAtZXEgMCBd
XSA7IHRoZW4KKyAgICBlY2hvICdkb3dubG9hZC1yb290cy5zaCBbZmlsZS1wYXRoXScKKyAgICBl
eGl0IDAKK2ZpCisKK2ZpbGVfcGF0aCA9ICQxOworY2F0IGZpbGVfcGF0aCB8IHdoaWxlIHJlYWQg
cHJvamVjdDsgZG8KKyAgICBlY2hvICIiCisgICAgZWNobyAiU3RhcnQgZG93bmxvYWRpbmcgJHBy
b2plY3Q6IgorICAgIHByb2plY3RfaW5mbz1geGJzZmluZCBwcm9qZWN0dmVyc2lvbnMgLS11cGRh
dGUgU2t5MTlBMTg1YSAke3Byb2plY3R9IC0tYnVpbGQgLS1wYXRoIC0tcmV0aXJlZGAKKyAgICBw
cm9qZWN0X3BhdGg9YGVjaG8gJHByb2plY3RfaW5mbyB8IGdyZXAgLUVveiAiL1NXRS4qImAKKyAg
ICBwcm9qZWN0X3ZlcnNpb249YGVjaG8gJHByb2plY3RfcGF0aCB8IGdyZXAgLUVvICIvJHtwcm9q
ZWN0fS0uKiJgCisgICAgcm9vdF9wYXRoPSR7cHJvamVjdF9wYXRoXC9Sb290fQorCisgICAgaWYg
WyAtZCByb290X3BhdGggXSA7IHRoZW4KKyAgICAgICAgY2Qgcm9vdF9wYXRoCisgICAgICAgIHRh
ciBjZiB+L0Rlc2t0b3AvMDIwN3JlZ3Jlc3Npb24ke3Byb2plY3RfdmVyc2lvbn0udGFyICoKKyAg
ICBlbHNlCisgICAgICAgIGVjaG8gIkVSUk9SOiAkcm9vdF9wYXRoIHJvb3QgZG9lcyBub3QgZXhp
c3RzIgorICAgIGZpCitkb25lClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3Jlc291cmNlcy9zeW5jLWFj
Y2Vzcy1oYW5kbGUtYmFzaWNzLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNj
ZXNzL3Jlc291cmNlcy9zeW5jLWFjY2Vzcy1oYW5kbGUtYmFzaWNzLmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk2
NzEyNWE0NmRjNmI2ZWMzZmNmZWYxMzk0YTg2MDhjODY1Mjg3MmMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3MvcmVzb3VyY2VzL3N5bmMtYWNj
ZXNzLWhhbmRsZS1iYXNpY3MuanMKQEAgLTAsMCArMSw4MSBAQAoraWYgKHRoaXMuaW1wb3J0U2Ny
aXB0cykgeworICAgIGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0Lmpz
Jyk7Cit9CisKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIGJhc2ljIGZ1bnRpb25hbGl0
aWVzIG9mIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLiIpOworCit2YXIgcm9vdEhhbmRsZSwg
ZmlsZUhhbmRsZSwgYWNjZXNzSGFuZGxlMSwgYWNjZXNzSGFuZGxlMiwgY3JlYXRlRXJyb3I7CisK
K2Z1bmN0aW9uIGZpbmlzaFRlc3QoZXJyb3IpCit7CisgICAgaWYgKGVycm9yKSB7CisgICAgICAg
IHRlc3RGYWlsZWQoZXJyb3IpOworICAgIH0KKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworZnVu
Y3Rpb24gZ2V0RGlyZWN0b3J5KCkgeworICAgIG5hdmlnYXRvci5zdG9yYWdlLmdldERpcmVjdG9y
eSgpLnRoZW4oKGhhbmRsZSkgPT4geworICAgICAgICByb290SGFuZGxlID0gaGFuZGxlOworICAg
ICAgICBjcmVhdGVGaWxlSGFuZGxlKHJvb3RIYW5kbGUpOworICAgIH0pLmNhdGNoKChlcnJvcikg
PT4geworICAgICAgICBmaW5pc2hUZXN0KGVycm9yKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24g
Y3JlYXRlRmlsZUhhbmRsZShmcm9tSGFuZGxlKSB7CisgICAgZnJvbUhhbmRsZS5nZXRGaWxlSGFu
ZGxlKCJzeW5jLWFjY2Vzcy1oYW5kbGUudHh0IiwgeyAiY3JlYXRlIiA6IHRydWUgfSkudGhlbigo
aGFuZGxlKSA9PiB7CisgICAgICAgIGZpbGVIYW5kbGUgPSBoYW5kbGU7CisgICAgICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygiZmlsZUhhbmRsZS5uYW1lIiwgInN5bmMtYWNjZXNzLWhhbmRsZS50
eHQiKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJmaWxlSGFuZGxlLmtpbmQiLCAi
ZmlsZSIpOworICAgICAgICBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKGZpbGVIYW5kbGUpOworICAg
IH0pLmNhdGNoKChlcnJvcikgPT4geworICAgICAgICBmaW5pc2hUZXN0KGVycm9yKTsKKyAgICB9
KTsKK30KKworZnVuY3Rpb24gY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShmcm9tSGFuZGxlKSB7Cisg
ICAgZnJvbUhhbmRsZS5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlKCkudGhlbigoaGFuZGxlKSA9PiB7
CisgICAgICAgIGFjY2Vzc0hhbmRsZTEgPSBoYW5kbGU7CisgICAgICAgIGRlYnVnKCJhY2Nlc3NI
YW5kbGUxIGlzIGNyZWF0ZWQiKTsKKyAgICAgICAgZ2V0U2l6ZShhY2Nlc3NIYW5kbGUxKTsKKyAg
ICB9KS5jYXRjaCgoZXJyb3IpID0+IHsKKyAgICAgICAgZmluaXNoVGVzdChlcnJvcik7CisgICAg
fSk7Cit9CisKK2Z1bmN0aW9uIGdldFNpemUoYWNjZXNzSGFuZGxlKSB7CisgICAgYWNjZXNzSGFu
ZGxlLmdldFNpemUoKS50aGVuKChyZXN1bHQpID0+IHsKKyAgICAgICAgc2l6ZSA9IHJlc3VsdDsK
KyAgICAgICAgc2hvdWxkQmUoInNpemUiLCAiMCIpOworICAgICAgICBjcmVhdGVTZWNvbmRTeW5j
QWNlc3NIYW5kbGUoZmlsZUhhbmRsZSk7CisgICAgfSkuY2F0Y2goKGVycm9yKSA9PiB7CisgICAg
ICAgIGZpbmlzaFRlc3QoZXJyb3IpOworICAgIH0pOworfQorCitmdW5jdGlvbiBjcmVhdGVTZWNv
bmRTeW5jQWNlc3NIYW5kbGUoZnJvbUhhbmRsZSkgeworICAgIGZyb21IYW5kbGUuY3JlYXRlU3lu
Y0FjY2Vzc0hhbmRsZSgpLnRoZW4oKGhhbmRsZSkgPT4geworICAgICAgICBhY2Nlc3NIYW5kbGUy
ID0gaGFuZGxlOworICAgICAgICAvLyBTZWNvbmQgY3JlYXRpb24gc2hvdWxkIHN1Y2NlZWQuCisg
ICAgICAgIGRlYnVnKCJhY2Nlc3NIYW5kbGUyIGlzIGNyZWF0ZWQiKTsKKyAgICAgICAgZmluaXNo
VGVzdCgpOworICAgIH0pLmNhdGNoKChlcnJvcikgPT4geworICAgICAgICAvLyBGaXJzdCBjcmVh
dGlvbiBzaG91bGQgZmFpbCBhcyB0aGVyZSBpcyBhbiBhY3RpdmUgaGFuZGxlLgorICAgICAgICBj
cmVhdGVFcnJvciA9IGVycm9yOworICAgICAgICBkZWJ1ZygiYWNjZXNzSGFuZGxlMiBjYW5ub3Qg
YmUgY3JlYXRlZCIpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImNyZWF0ZUVycm9y
LnRvU3RyaW5nKCkiLCAiSW52YWxpZFN0YXRlRXJyb3I6IFRoZSBvYmplY3QgaXMgaW4gYW4gaW52
YWxpZCBzdGF0ZS4iKTsKKyAgICAgICAgY2xvc2UoKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24g
Y2xvc2UoKSB7CisgICAgYWNjZXNzSGFuZGxlMS5jbG9zZSgpLnRoZW4oKHJlc3VsdCkgPT4gewor
ICAgICAgICBkZWJ1ZygiYWNjZXNzSGFuZGxlMSBpcyBjbG9zZWQiKTsKKyAgICAgICAgY3JlYXRl
U2Vjb25kU3luY0FjZXNzSGFuZGxlKGZpbGVIYW5kbGUpOworICAgIH0pLmNhdGNoKChlcnJvcikg
PT4geworICAgICAgICBmaW5pc2hUZXN0KGVycm9yKTsKKyAgICB9KTsKK30KKworZ2V0RGlyZWN0
b3J5KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mv
c3luYy1hY2Nlc3MtaGFuZGxlLWJhc2ljcy13b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1iYXNpY3Mtd29y
a2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NzZiNjI2MmEyNTE1YTY5MzY1NjllMjMyYWE2
YWIyZTYwNWI1ODUyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxl
c3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1iYXNpY3Mtd29ya2VyLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDYgQEAKK1N0YXJ0aW5nIHdvcmtlcjogcmVzb3VyY2VzL3N5bmMtYWNjZXNz
LWhhbmRsZS1iYXNpY3MuanMKK0dvdCBlcnJvciBmcm9tIHdvcmtlcjogdW5kZWZpbmVkCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRs
ZS1iYXNpY3Mtd29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nl
c3Mvc3luYy1hY2Nlc3MtaGFuZGxlLWJhc2ljcy13b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZmVj
MzZhNTk2MGI0YWFhMjFhMmY4MGFkMTFjZWQ0YjdlY2VkOWQ1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1i
YXNpY3Mtd29ya2VyLmh0bWwKQEAgLTAsMCArMSw5IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHNjcmlwdD4KK3dvcmtlciA9IHN0YXJ0V29ya2VyKCdyZXNvdXJjZXMvc3luYy1hY2Nl
c3MtaGFuZGxlLWJhc2ljcy5qcycpOzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440086</attachid>
            <date>2021-10-04 12:15:47 -0700</date>
            <delta_ts>2021-10-05 03:33:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231185-20211004121546.patch</filename>
            <type>text/plain</type>
            <size>78300</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNDc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDlmMGNlOGI3ODFkYzQ4NGJiMzc3NThi
NzM0MzUzZDI2NzE3OTA4OTUuLmM0MWE1ODRiNmUwN2RjOTM0NGU3OWIxMDMxMjMwNDcyYjhkZjA0
MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMTAtMDQgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzExODUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHd0Zi9GaWxlU3lzdGVtLmg6CisgICAgICAgICogd3RmL2dsaWIvRmlsZVN5c3RlbUdsaWIu
Y3BwOgorICAgICAgICAoV1RGOjpGaWxlU3lzdGVtSW1wbDo6Zmx1c2hGaWxlKToKKyAgICAgICAg
KiB3dGYvcG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNwcDoKKyAgICAgICAgKFdURjo6RmlsZVN5c3Rl
bUltcGw6OmZsdXNoRmlsZSk6CisgICAgICAgICogd3RmL3dpbi9GaWxlU3lzdGVtV2luLmNwcDoK
KyAgICAgICAgKFdURjo6RmlsZVN5c3RlbUltcGw6OmZsdXNoRmlsZSk6CisKIDIwMjEtMTAtMDMg
IERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBXVEY6OlJldGFp
blB0cjw+IGFsbG93cyBhc3NpZ25tZW50IG9mIHR3byBwb2ludGVyIHR5cGVzIHRoYXQgYXJlIG5v
dCBhc3NpZ25hYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTNiZDk3Nzc0OTYwZjNhZDcwYTRhNDJlZjMwNjhl
NzhmNmMzZDgzYi4uNDBiNGZkNWEyZGE4Mzk2MjkzNWE5ZTlkODRmYmIzNDkxOGFhNGM2MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDIxLTEwLTA0ICBTaWh1aSBMaXUgIDxzaWh1aV9s
aXVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjMxMTg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW1wbGVtZW50IGJhc2ljIHN1cHBvcnQgZm9yIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
IGFzIHByb3Bvc2FsOgorICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vV0lDRy9maWxlLXN5c3Rl
bS1hY2Nlc3MvYmxvYi9tYWluL0FjY2Vzc0hhbmRsZS5tZAorCisgICAgICAgIEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlIGNhbiBiZSBjcmVhdGVkIHZpYSBGaWxlU3lzdGVtRmlsZUhhbmRsZSwg
YW5kIGl0IGNvbW11aWNhdGVzIHdpdGggYmFja2VuZCB2aWEgCisgICAgICAgIEZpbGVTeXN0ZW1G
aWxlSGFuZGxlLgorCisgICAgICAgIFRlc3Q6IHN0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5j
LWFjY2Vzcy1oYW5kbGUtYmFzaWNzLXdvcmtlci5odG1sCisKKyAgICAgICAgKiBIZWFkZXJzLmNt
YWtlOgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNv
dXJjZXMubWFrZToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bUZpbGVIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6
OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZp
bGVIYW5kbGU6OmdldFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5k
bGU6OnRydW5jYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpm
bHVzaCk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y2xvc2UpOgor
ICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5o
OgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRs
ZS5pZGw6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUpOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6On5GaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZTo6dHJ1bmNhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU6OmdldFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU6OmZsdXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlOjpjbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZTo6ZGlkQ2xvc2UpOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRsOiBBZGRlZC4KKyAgICAgICAg
KiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbjo6c2NvcGVDbG9zZWQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpyZW1vdmVFbnRyeSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNvbXBsZXRlSW50ZWdlckNhbGxiYWNrKToKKyAg
ICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y29tcGxl
dGVWb2lkQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6
OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Z2V0U2l6ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnRydW5jYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Zmx1c2gp
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpj
bG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b246OmRpZFJlbW92ZUVudHJ5KTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg6CisgICAgICAgICog
U291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaDoKKwogMjAyMS0x
MC0wMyAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSUZD
XSBMaW5lIGZ1bmN0aW9ucyBjYW4gY29tcHV0ZSB0aGUgImV4dHJhIGhvcml6b250YWwgc3BhY2Ui
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IGQxMzBjYjlmZjBhYTY1MWJkMzA4ZjA5Yzc4ZjQ1ZWI3Yzk1MDZiMmEuLjJk
NjBmYzc1YTQ0NGM5NzU5YzE1ZTExYzEyZDc0ZmVlMjY1NTI1MTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNDQgQEAKKzIwMjEtMTAtMDQgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisK
KyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzExODUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHkgd2Ug
b25seSBhbGxvdyBvbmUgb3BlbiBhY2Nlc3MgaGFuZGxlIG9uIG9uZSBmaWxlLiBTZWNvbmQgYWNj
ZXNzIGhhbmRsZSBjYW4gYmUgY3JlYXRlZCBhZnRlciB0aGUgZmlyc3QKKyAgICAgICAgaXMgY2xv
c2VkLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFn
ZUVycm9yLmg6CisgICAgICAgIChXZWJLaXQ6OmNvbnZlcnRUb0V4Y2VwdGlvbkNvZGUpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Y3JlYXRlU3luY0Fj
Y2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpn
ZXRTaXplKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OnRydW5j
YXRlKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmZsdXNoKToK
KyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmNsb3NlKToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmg6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXI6OmNvbm5lY3Rp
b25DbG9zZWQpOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXI6OmFj
cXVpcmVMb2NrRm9yRmlsZSk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlTWFu
YWdlcjo6cmVsZWFzZUxvY2tGb3JGaWxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9y
YWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1N0b3JhZ2VNYW5hZ2VyOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpnZXRTaXplRm9yQWNjZXNzSGFuZGxlKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjp0cnVuY2F0ZUZvckFjY2Vzc0hh
bmRsZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Zmx1c2hGb3JB
Y2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmNs
b3NlQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdv
cmtTdG9yYWdlTWFuYWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0
d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpyZW1vdmVFbnRyeSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlU3lu
Y0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbjo6Z2V0U2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbjo6dHJ1bmNhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb246OmZsdXNoKToKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpjbG9zZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaDoKKwogMjAyMS0xMC0wMyAgRGF2
aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFdURjo6UmV0YWluUHRy
PD4gYWxsb3dzIGFzc2lnbm1lbnQgb2YgdHdvIHBvaW50ZXIgdHlwZXMgdGhhdCBhcmUgbm90IGFz
c2lnbmFibGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uaCBiL1NvdXJj
ZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uaAppbmRleCBjNDUwMWQxNGE3NDJhYTIxZmE2ZGM3YTczZjgz
MDllYzZhODdmNGQ1Li5iMTA3MzcwNjk4ZTFhZDFkYTc5NGE3ZTQ2NmNjMDA3MTJhN2Q4NjY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9GaWxlU3lzdGVtLmgKKysrIGIvU291cmNlL1dURi93
dGYvRmlsZVN5c3RlbS5oCkBAIC0xNTQsNiArMTU0LDcgQEAgV1RGX0VYUE9SVF9QUklWQVRFIHZv
aWQgY2xvc2VGaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSYpOwogLy8gUmV0dXJucyB0aGUgcmVzdWx0
aW5nIG9mZnNldCBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGZpbGUgaWYgc3VjY2Vzc2Z1bCwg
LTEgb3RoZXJ3aXNlLgogV1RGX0VYUE9SVF9QUklWQVRFIGxvbmcgbG9uZyBzZWVrRmlsZShQbGF0
Zm9ybUZpbGVIYW5kbGUsIGxvbmcgbG9uZyBvZmZzZXQsIEZpbGVTZWVrT3JpZ2luKTsKIFdURl9F
WFBPUlRfUFJJVkFURSBib29sIHRydW5jYXRlRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUsIGxvbmcg
bG9uZyBvZmZzZXQpOworV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgZmx1c2hGaWxlKFBsYXRmb3Jt
RmlsZUhhbmRsZSk7CiAvLyBSZXR1cm5zIG51bWJlciBvZiBieXRlcyBhY3R1YWxseSByZWFkIGlm
IHN1Y2Nlc3NmdWwsIC0xIG90aGVyd2lzZS4KIFdURl9FWFBPUlRfUFJJVkFURSBpbnQgd3JpdGVU
b0ZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlLCBjb25zdCB2b2lkKiBkYXRhLCBpbnQgbGVuZ3RoKTsK
IC8vIFJldHVybnMgbnVtYmVyIG9mIGJ5dGVzIGFjdHVhbGx5IHdyaXR0ZW4gaWYgc3VjY2Vzc2Z1
bCwgLTEgb3RoZXJ3aXNlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvZ2xpYi9GaWxlU3lz
dGVtR2xpYi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcAppbmRl
eCA1NDYyNDRjNzA0MTA4NGNiNGI0MmU5ZjBhYWViYThhMjYyOTAzZmQzLi5mODEyN2YwYmEwZjQ0
ZTQ5ZWYyODU5ZTE1MTgwMDhjMWIzMDQ4NDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9n
bGliL0ZpbGVTeXN0ZW1HbGliLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL0ZpbGVTeXN0
ZW1HbGliLmNwcApAQCAtMjEzLDYgKzIxMywxMSBAQCBib29sIHRydW5jYXRlRmlsZShQbGF0Zm9y
bUZpbGVIYW5kbGUgaGFuZGxlLCBsb25nIGxvbmcgb2Zmc2V0KQogICAgIHJldHVybiBnX3NlZWth
YmxlX3RydW5jYXRlKEdfU0VFS0FCTEUoZ19pb19zdHJlYW1fZ2V0X291dHB1dF9zdHJlYW0oR19J
T19TVFJFQU0oaGFuZGxlKSkpLCBvZmZzZXQsIG51bGxwdHIsIG51bGxwdHIpOwogfQogCitib29s
IGZsdXNoRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlKQoreworICAgIHJldHVybiBnX291
dHB1dF9zdHJlYW1fZmx1c2goZ19pb19zdHJlYW1fZ2V0X291dHB1dF9zdHJlYW0oR19JT19TVFJF
QU0oaGFuZGxlKSksIG51bGxwdHIsIG51bGxwdHIpOworfQorCiBpbnQgd3JpdGVUb0ZpbGUoUGxh
dGZvcm1GaWxlSGFuZGxlIGhhbmRsZSwgY29uc3Qgdm9pZCogZGF0YSwgaW50IGxlbmd0aCkKIHsK
ICAgICBpZiAoIWxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3Bvc2l4L0ZpbGVT
eXN0ZW1QT1NJWC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9wb3NpeC9GaWxlU3lzdGVtUE9TSVguY3Bw
CmluZGV4IGIxMzM4MjRlYzJhMTE1ZWE1MGM3YzM0ZTBmMWE1ZWNlODA0MDJkNGMuLjc5NTY3MGZk
NmQ4MDI3OGRmNmMxNzBiMjE2MmM0OGI1MmU5Y2JiZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvcG9zaXgv
RmlsZVN5c3RlbVBPU0lYLmNwcApAQCAtMTE4LDYgKzExOCwxMSBAQCBib29sIHRydW5jYXRlRmls
ZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlLCBsb25nIGxvbmcgb2Zmc2V0KQogICAgIHJldHVy
biAhZnRydW5jYXRlKGhhbmRsZSwgb2Zmc2V0KTsKIH0KIAorYm9vbCBmbHVzaEZpbGUoUGxhdGZv
cm1GaWxlSGFuZGxlIGhhbmRsZSkKK3sKKyAgICByZXR1cm4gIWZzeW5jKGhhbmRsZSk7Cit9CisK
IGludCB3cml0ZVRvRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlLCBjb25zdCB2b2lkKiBk
YXRhLCBpbnQgbGVuZ3RoKQogewogICAgIGRvIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L3dpbi9GaWxlU3lzdGVtV2luLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3dpbi9GaWxlU3lzdGVtV2lu
LmNwcAppbmRleCBmZmE2MjkzYzczZTg0ZWVlMGJjZTEyY2M0ZDBkYTdjZGNhNjBiODkzLi4yYmM4
ZjIwMTA1MWM3ZDg1YjE3YjQ0YWMyNzM4ZDJlZDAxZjJkOTRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi93aW4vRmlsZVN5c3RlbVdpbi5jcHAKKysrIGIvU291cmNlL1dURi93dGYvd2luL0Zp
bGVTeXN0ZW1XaW4uY3BwCkBAIC0zMDMsNiArMzAzLDEyIEBAIGJvb2wgdHJ1bmNhdGVGaWxlKFBs
YXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUsIGxvbmcgbG9uZyBvZmZzZXQpCiAgICAgcmV0dXJuIFNl
dEZpbGVJbmZvcm1hdGlvbkJ5SGFuZGxlKGhhbmRsZSwgRmlsZUVuZE9mRmlsZUluZm8sICZlb2ZJ
bmZvLCBzaXplb2YoRklMRV9FTkRfT0ZfRklMRV9JTkZPKSk7CiB9CiAKK2Jvb2wgZmx1c2hGaWxl
KFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUpCit7CisgICAgLy8gTm90IGltcGxlbWVudGVkLgor
ICAgIHJldHVybiBmYWxzZTsKK30KKwogaW50IHdyaXRlVG9GaWxlKFBsYXRmb3JtRmlsZUhhbmRs
ZSBoYW5kbGUsIGNvbnN0IHZvaWQqIGRhdGEsIGludCBsZW5ndGgpCiB7CiAgICAgaWYgKCFpc0hh
bmRsZVZhbGlkKGhhbmRsZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5w
dXQueGNmaWxlbGlzdAppbmRleCA5ODJkZmE2MzVlNTZhZTJiYTkzNTUyMTlkNTg2ZjI3NzBjYzM5
ZDdjLi43MTE4NTU3NzAxMTcyNTVjNWU1YzI1ZmU2ZTMxMDk5YmIyY2NhZWI5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTEyNiw2ICsx
MjYsNyBAQCAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2ZldGNoL1dpbmRvd09yV29ya2VyR2xvYmFs
U2NvcGUrRmV0Y2guaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5pZGwKICQoUFJPSkVDVF9ESVIpL01v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmlkbAorJChQUk9KRUNUX0RJ
UikvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlk
bAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1N0b3JhZ2VNYW5hZ2Vy
K0ZpbGVTeXN0ZW1BY2Nlc3MuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2dhbWVwYWQvR2Ft
ZXBhZC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkQnV0dG9uLmlk
bApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmls
ZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApp
bmRleCAyNmNhZjU4NjQwNTg4ZWY1M2ZhMzQ0Yjk0MWEyYTNkNGM0MzUyYjcyLi5jYzZhNzE5YjE1
Y2JjZjVkNDkyNTA1NDA3ZmMzZjVhNjZhYWNkNmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtOTA3LDYgKzkwNyw4IEBAICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRmlsZVN5c3RlbUZpbGVI
YW5kbGUuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTRmlsZVN5c3RlbUhhbmRsZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRmlsZVN5c3RlbUhhbmRsZS5oCiskKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0ZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0ZpbGxNb2RlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNGaWxsTW9kZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0ZvY3VzRXZlbnQuY3BwCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZQppbmRleCA0MzE5MWI2YmU3NDNlNzY4ZWY1NTYyYTg3YTMxODYzMThhMGNl
MDYxLi4wMGI3NWJkNzc0ZWJiOTQ1NDgyZDlhYWY2MTBlYjE1MGUwOWFjMzEwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTE1NSw2ICsxNTUsNyBAQCBKU19CSU5ESU5HX0lETFMg
Oj0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1E
aXJlY3RvcnlIYW5kbGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5pZGwgXAogICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1N0b3JhZ2VNYW5hZ2VyK0ZpbGVT
eXN0ZW1BY2Nlc3MuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFk
LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dhbWVwYWQvR2FtZXBhZEJ1dHRvbi5pZGwg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UKaW5kZXggMzk0Y2IzYmI2ZTFhMzI3MjQ5NTFiMjI2NTdlZDk1OTlm
ZDM3OGY4Mi4uOWE1OWMzMGI5NTJkMjFlNDY2NDZmZTYxOGI1Yzc0YTY5ZTVhZjM3YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlCkBAIC00Miw2ICs0Miw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVX
T1JLX0hFQURFUlMKICAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRs
ZS5oCiAgICAgTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyLmgKICAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uLmgKKyAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGUuaAogICAgIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9TdG9yYWdlTWFuYWdlckZp
bGVTeXN0ZW1BY2Nlc3MuaAogICAgIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAogICAgIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9X
b3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb25DYWxsYmFja0lkZW50aWZpZXIuaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1GaWxlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKaW5kZXggYjIxMjU0N2I1ZmU5YjliZDI1NjdmYjFi
MDk0ODBiYmRkMGYxOWY2Ny4uNzY2OWUxYjYzNjFkNDExNGY0NzlmODA2NjQxYzE1OWFhNjRiZTJj
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1GaWxlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCkBAIC0yNyw3ICsyNyw5IEBACiAj
aW5jbHVkZSAiRmlsZVN5c3RlbUZpbGVIYW5kbGUuaCIKIAogI2luY2x1ZGUgIkZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
LmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRlICJKU0ZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDksNSArNTEsNDEgQEAgdm9pZCBGaWxlU3lz
dGVtRmlsZUhhbmRsZTo6Z2V0RmlsZShET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZp
bGU+PiYmIHByb20KICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRF
cnJvciwgIk5vdCBpbXBsZW1lbnRlZCJfcyB9KTsKIH0KIAordm9pZCBGaWxlU3lzdGVtRmlsZUhh
bmRsZTo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZShET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJm
YWNlPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPj4mJiBwcm9taXNlKQoreworICAgIGNvbm5l
Y3Rpb24oKS5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlKGlkZW50aWZpZXIoKSwgW3Byb3RlY3RlZFRo
aXMgPSBSZWYgeyAqdGhpcyB9LCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1
bHQpIG11dGFibGUgeworICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQorICAgICAg
ICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOwor
CisgICAgICAgIHByb21pc2Uuc2V0dGxlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjcmVh
dGUocHJvdGVjdGVkVGhpcy5nZXQoKSwgcmVzdWx0LnJldHVyblZhbHVlKCkpKTsKKyAgICB9KTsK
K30KKwordm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Z2V0U2l6ZSh1aW50NjRfdCBhY2Nlc3NI
YW5kbGVJZGVudGlmaWVyLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMVW5zaWduZWRMb25nTG9uZz4m
JiBwcm9taXNlKQoreworICAgIGNvbm5lY3Rpb24oKS5nZXRTaXplKGlkZW50aWZpZXIoKSwgYWNj
ZXNzSGFuZGxlSWRlbnRpZmllciwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJl
c3VsdCkgbXV0YWJsZSB7CisgICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7
CisgICAgfSk7Cit9CisKK3ZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OnRydW5jYXRlKHVpbnQ2
NF90IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBET01Q
cm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQoreworICAgIGNvbm5lY3Rpb24oKS50cnVu
Y2F0ZShpZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHNpemUsIFtwcm9taXNl
ID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgICAgICBwcm9t
aXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOworICAgIH0pOworfQorCit2b2lkIEZpbGVTeXN0
ZW1GaWxlSGFuZGxlOjpmbHVzaCh1aW50NjRfdCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBET01Q
cm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQoreworICAgIGNvbm5lY3Rpb24oKS5mbHVz
aChpZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFtwcm9taXNlID0gV1RGTW92
ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgICAgICBwcm9taXNlLnNldHRs
ZShXVEZNb3ZlKHJlc3VsdCkpOworICAgIH0pOworfQorCit2b2lkIEZpbGVTeXN0ZW1GaWxlSGFu
ZGxlOjpjbG9zZSh1aW50NjRfdCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorewor
ICAgIGNvbm5lY3Rpb24oKS5jbG9zZShpZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCmluZGV4IDI1MDA1YzIxMzM4YmU3ODZh
OTlmMjBiOGZhYWRlM2MxMmE3YWRjZDUuLjkyNjZiMTgyNzZmOGRmYjNkYTAwYmVhMDEzNWY4ZTJm
MDMwNDIzMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCkBAIC0zMCw2ICszMCw4IEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZpbGU7CitjbGFzcyBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZTsKK3RlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKIAog
Y2xhc3MgRmlsZVN5c3RlbUZpbGVIYW5kbGUgZmluYWwgOiBwdWJsaWMgRmlsZVN5c3RlbUhhbmRs
ZSB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChGaWxlU3lzdGVtRmlsZUhhbmRsZSk7CkBA
IC0zNyw2ICszOSwxMiBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxG
aWxlU3lzdGVtRmlsZUhhbmRsZT4gY3JlYXRlKFN0cmluZyYmLCBGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJik7CiAgICAgdm9pZCBn
ZXRGaWxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZT4+JiYpOwogCisgICAg
dm9pZCBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZh
Y2U8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+PiYmKTsKKyAgICB2b2lkIHRydW5jYXRlKHVp
bnQ2NF90IGlkZW50aWZpZXIsIHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBET01Qcm9taXNlRGVm
ZXJyZWQ8dm9pZD4mJik7CisgICAgdm9pZCBnZXRTaXplKHVpbnQ2NF90IGlkZW50aWZpZXIsIERP
TVByb21pc2VEZWZlcnJlZDxJRExVbnNpZ25lZExvbmdMb25nPiYmKTsKKyAgICB2b2lkIGZsdXNo
KHVpbnQ2NF90IGlkZW50aWZpZXIsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKyAgICB2
b2lkIGNsb3NlKHVpbnQ2NF90IGlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhj
ZXB0aW9uT3I8dm9pZD4mJik+JiYpOworCiBwcml2YXRlOgogICAgIEZpbGVTeXN0ZW1GaWxlSGFu
ZGxlKFN0cmluZyYmLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbj4mJik7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5pZGwK
aW5kZXggOWU2YWE4ODU2ZWQ5N2I2Y2JhNDYzODUwNWFmYWExZTU1YTZkOTVmNS4uYzEzOTJmNTUx
NjY4MzU3OGM0YTQ4MmYxYTZkOTA4OGE4NGM5MWFhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVI
YW5kbGUuaWRsCkBAIC0yMywxMSArMjMsMTMgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KICAqLwogCisvLyBodHRwczovL3dpY2cuZ2l0aHViLmlvL2ZpbGUtc3lzdGVtLWFj
Y2Vzcy8jYXBpLWZpbGVzeXN0ZW1oYW5kbGUKKwogWwogICAgIEVuYWJsZWRCeVNldHRpbmc9Rmls
ZVN5c3RlbUFjY2Vzc0VuYWJsZWQsCiAgICAgRXhwb3NlZD0oV2luZG93LFdvcmtlciksCiAgICAg
U2VjdXJlQ29udGV4dAogXSBpbnRlcmZhY2UgRmlsZVN5c3RlbUZpbGVIYW5kbGUgOiBGaWxlU3lz
dGVtSGFuZGxlIHsKICAgICBQcm9taXNlPEZpbGU+IGdldEZpbGUoKTsKLSAgICAvLyBGSVhNRTog
YWRkIFByb21pc2U8RmlsZVN5c3RlbVdyaXRhYmxlRmlsZVN0cmVhbT4gY3JlYXRlV3JpdGFibGUo
b3B0aW9uYWwgRmlsZVN5c3RlbUNyZWF0ZVdyaXRhYmxlT3B0aW9ucyBvcHRpb25zKTsKKyAgICBb
RXhwb3NlZD1Xb3JrZXJdIFByb21pc2U8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+IGNyZWF0
ZVN5bmNBY2Nlc3NIYW5kbGUoKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uLmgKaW5kZXggZTYwNWE2N2Q5MmFiNDM2ZmQ2NDgzZTM3OGI2ZjYzOGI0ZDgxYWEwZC4u
YWQ0YmIzZmMxYmYwNmJlMDVhNmYyZDNmNzQ0ZGE3NDU4NDA4YThiOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9G
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaApAQCAtMzgsMTUgKzM4LDIzIEBAIHRlbXBsYXRl
PHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKIGNsYXNzIEZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24+IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5GaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24oKSB7IH0KKwogICAgIHVzaW5nIFNhbWVFbnRyeUNhbGxiYWNrID0gQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChFeGNlcHRpb25Pcjxib29sPiYmKT47CiAgICAgdXNpbmcgR2V0SGFuZGxlQ2Fs
bGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPEZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyPiYmKT47Ci0gICAgdXNpbmcgUmVtb3ZlRW50cnlDYWxsYmFjayA9IENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+OwogICAgIHVzaW5nIFJlc29s
dmVDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8VmVjdG9yPFN0
cmluZz4+JiYpPjsKKyAgICB1c2luZyBWb2lkQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPjsKKyAgICB1c2luZyBJbnRlZ2VyQ2FsbGJhY2sgPSBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHVpbnQ2NF90PiYmKT47CisKICAgICB2
aXJ0dWFsIHZvaWQgaXNTYW1lRW50cnkoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBTYW1lRW50cnlDYWxsYmFjayYmKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIGdldEZpbGVIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgR2V0SGFuZGxlQ2FsbGJhY2sm
JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBnZXREaXJlY3RvcnlIYW5kbGUoRmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2Fy
eSwgR2V0SGFuZGxlQ2FsbGJhY2smJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVFbnRy
eShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRl
bGV0ZVJlY3Vyc2l2ZWx5LCBSZW1vdmVFbnRyeUNhbGxiYWNrJiYpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgcmVtb3ZlRW50cnkoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgVm9pZENhbGxiYWNrJiYpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgcmVzb2x2ZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIsIFJlc29sdmVDYWxsYmFjayYmKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIs
IEludGVnZXJDYWxsYmFjayYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldFNpemUoRmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIsIHVpbnQ2NF90IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIElu
dGVnZXJDYWxsYmFjayYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHRydW5jYXRlKEZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1aW50
NjRfdCBzaXplLCBWb2lkQ2FsbGJhY2smJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBmbHVzaChG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3QgYWNjZXNzSGFuZGxlSWRlbnRpZmll
ciwgVm9pZENhbGxiYWNrJiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoRmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIsIHVpbnQ2NF90IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFZvaWRD
YWxsYmFjayYmKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MzVhMTM4NjRkMDgz
YTA1NjkxY2FjNWFmZDUxYTMwYWIxNGZjZmNjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
LmNwcApAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgiCisKKyNpbmNsdWRlICJCdWZm
ZXJTb3VyY2UuaCIKKyNpbmNsdWRlICJGaWxlU3lzdGVtRmlsZUhhbmRsZS5oIgorI2luY2x1ZGUg
IkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y3Jl
YXRlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiBzb3VyY2UsIHVpbnQ2NF90IGlkZW50aWZpZXIpCit7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoc291
cmNlLCBpZGVudGlmaWVyKSk7Cit9CisKK0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtRmlsZUhhbmRsZSYgc291cmNlLCB1aW50
NjRfdCBpZGVudGlmaWVyKQorICAgIDogbV9zb3VyY2Uoc291cmNlKQorICAgICwgbV9pZGVudGlm
aWVyKGlkZW50aWZpZXIpCit7Cit9CisKK0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjp+Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoKQoreworICAgIGlmICghbV9pc0Nsb3NlZCkKKyAgICAg
ICAgbV9zb3VyY2UtPmNsb3NlKG1faWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChF
eGNlcHRpb25Pcjx2b2lkPiYmKT4geyB9KTsKK30KKwordm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZTo6dHJ1bmNhdGUodW5zaWduZWQgbG9uZyBsb25nIHNpemUsIERPTVByb21pc2VEZWZl
cnJlZDx2b2lkPiYmIHByb21pc2UpCit7CisgICAgbV9zb3VyY2UtPnRydW5jYXRlKG1faWRlbnRp
Zmllciwgc2l6ZSwgV1RGTW92ZShwcm9taXNlKSk7Cit9CisKK3ZvaWQgRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGU6OmdldFNpemUoRE9NUHJvbWlzZURlZmVycmVkPElETFVuc2lnbmVkTG9uZ0xv
bmc+JiYgcHJvbWlzZSkKK3sKKyAgICBtX3NvdXJjZS0+Z2V0U2l6ZShtX2lkZW50aWZpZXIsIFdU
Rk1vdmUocHJvbWlzZSkpOworfQorCit2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpm
bHVzaChET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQoreworICAgIG1fc291cmNl
LT5mbHVzaChtX2lkZW50aWZpZXIsIFdURk1vdmUocHJvbWlzZSkpOworfQorCit2b2lkIEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZShET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBw
cm9taXNlKQoreworICAgIGlmIChtX2lzQ2xvc2VkKQorICAgICAgICByZXR1cm4gcHJvbWlzZS5y
ZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CisKKyAgICBtX3NvdXJjZS0+
Y2xvc2UobV9pZGVudGlmaWVyLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHByb21p
c2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlm
ICh3ZWFrVGhpcykKKyAgICAgICAgICAgIHdlYWtUaGlzLT5kaWRDbG9zZSgpOworCisgICAgICAg
IHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7CisgICAgfSk7Cit9CisKK3ZvaWQgRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmRpZENsb3NlKCkKK3sKKyAgICBtX2lzQ2xvc2VkID0g
dHJ1ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZmMwNjZlOGIzMjUwNjEwMjY0ZDUyMDNiNDMy
MjIzNWI0MDBhYTFmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKQEAgLTAsMCArMSw1
OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiSURMVHlwZXMuaCIK
KyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IEZpbGVTeXN0ZW1GaWxlSGFuZGxlOwordGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIERPTVByb21p
c2VEZWZlcnJlZDsKKworY2xhc3MgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUgOiBwdWJsaWMg
UmVmQ291bnRlZDxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4sIHB1YmxpYyBDYW5NYWtlV2Vh
a1B0cjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4geworcHVibGljOgorICAgIHN0cnVjdCBG
aWxlc3lzdGVtUmVhZFdyaXRlT3B0aW9ucyB7CisgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBh
dDsKKyAgICB9OworCisgICAgc3RhdGljIFJlZjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4g
Y3JlYXRlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiwgdWludDY0X3QgaWRlbnRpZmllcik7CisgICAg
fkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKCk7CisKKyAgICB2b2lkIHRydW5jYXRlKHVuc2ln
bmVkIGxvbmcgbG9uZyBzaXplLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CisgICAgdm9p
ZCBnZXRTaXplKERPTVByb21pc2VEZWZlcnJlZDxJRExVbnNpZ25lZExvbmdMb25nPiYmKTsKKyAg
ICB2b2lkIGZsdXNoKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKyAgICB2b2lkIGNsb3Nl
KERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKyAgICB2b2lkIGRpZENsb3NlKCk7CisKK3By
aXZhdGU6CisgICAgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUZpbGVIYW5k
bGUmLCB1aW50NjRfdCBpZGVudGlmaWVyKTsKKworICAgIFJlZjxGaWxlU3lzdGVtRmlsZUhhbmRs
ZT4gbV9zb3VyY2U7CisgICAgdWludDY0X3QgbV9pZGVudGlmaWVyOworICAgIGJvb2wgbV9pc0Ns
b3NlZCB7IGZhbHNlIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40Njg2MzVhZjU3NDI0
N2JlNTNkMDJlYmFjZWQyMmRiMDc3YTJkZGQ4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
LmlkbApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRCeVNldHRp
bmc9RmlsZVN5c3RlbUFjY2Vzc0VuYWJsZWQsCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJs
ZSwKKyAgICBFeHBvc2VkPURlZGljYXRlZFdvcmtlciwKKyAgICBTZWN1cmVDb250ZXh0CitdIGlu
dGVyZmFjZSBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSB7CisgICAgUHJvbWlzZTx1bmRlZmlu
ZWQ+IHRydW5jYXRlKFtFbmZvcmNlUmFuZ2VdIHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplKTsKKyAg
ICBQcm9taXNlPHVuc2lnbmVkIGxvbmcgbG9uZz4gZ2V0U2l6ZSgpOworICAgIFByb21pc2U8dW5k
ZWZpbmVkPiBmbHVzaCgpOworICAgIFByb21pc2U8dW5kZWZpbmVkPiBjbG9zZSgpOworfTsKKwor
ZGljdGlvbmFyeSBGaWxlc3lzdGVtUmVhZFdyaXRlT3B0aW9ucyB7CisgICAgW0VuZm9yY2VSYW5n
ZV0gdW5zaWduZWQgbG9uZyBsb25nIGF0OworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggNDVlYjNlYzk1Yjc2NTFlN2MxNWUz
MGE2OTljNDc0YjY1NTJkNDNjZC4uNWI4ZmMwYTE5NzdlMTMwZjE4YzJjNDc5NWJjZjgzOTgzYWI1
NjE3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbi5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgdm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OnNjb3BlQ2xvc2VkKCkKICAgICBmb3IgKGF1dG8mIGNhbGxiYWNrIDogZ2V0SGFu
ZGxlQ2FsbGJhY2tzLnZhbHVlcygpKQogICAgICAgICBjYWxsYmFjayhFeGNlcHRpb24geyBJbnZh
bGlkU3RhdGVFcnJvciB9KTsKIAotICAgIGF1dG8gcmVtb3ZlRW50cnlDYWxsYmFja3MgPSBzdGQ6
OmV4Y2hhbmdlKG1fcmVtb3ZlRW50cnlDYWxsYmFja3MsIHsgfSk7CisgICAgYXV0byByZW1vdmVF
bnRyeUNhbGxiYWNrcyA9IHN0ZDo6ZXhjaGFuZ2UobV92b2lkQ2FsbGJhY2tzLCB7IH0pOwogICAg
IGZvciAoYXV0byYgY2FsbGJhY2sgOiByZW1vdmVFbnRyeUNhbGxiYWNrcy52YWx1ZXMoKSkKICAg
ICAgICAgY2FsbGJhY2soRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CiAKQEAgLTE0
NywxOSArMTQ3LDE5IEBAIHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpk
aWRHZXRIYW5kbGUoQ2FsbGJhY2tJZGVudGlmaWVyIGNhbGxiYWNrCiAgICAgICAgIGNhbGxiYWNr
KFdURk1vdmUocmVzdWx0KSk7CiB9CiAKLXZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpyZW1vdmVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHksIEZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6UmVtb3ZlRW50cnlDYWxsYmFjayYmIGNhbGxiYWNrKQordm9pZCBX
b3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnJlbW92ZUVudHJ5KEZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxl
dGVSZWN1cnNpdmVseSwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2sm
JiBjYWxsYmFjaykKIHsKICAgICBpZiAoIW1fc2NvcGUpCiAgICAgICAgIHJldHVybiBjYWxsYmFj
ayhFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKIAogICAgIGF1dG8gY2FsbGJhY2tJ
ZGVudGlmaWVyID0gQ2FsbGJhY2tJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUoKTsKLSAg
ICBtX3JlbW92ZUVudHJ5Q2FsbGJhY2tzLmFkZChjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUo
Y2FsbGJhY2spKTsKKyAgICBtX3ZvaWRDYWxsYmFja3MuYWRkKGNhbGxiYWNrSWRlbnRpZmllciwg
V1RGTW92ZShjYWxsYmFjaykpOwogCiAgICAgY2FsbE9uTWFpblRocmVhZChbY2FsbGJhY2tJZGVu
dGlmaWVyLCB3b3JrZXJUaHJlYWQgPSBSZWYgeyBtX3Njb3BlLT50aHJlYWQoKSB9LCBtYWluVGhy
ZWFkQ29ubmVjdGlvbiA9IG1fbWFpblRocmVhZENvbm5lY3Rpb24sIGlkZW50aWZpZXIsIG5hbWUg
PSBuYW1lLmlzb2xhdGVkQ29weSgpLCBkZWxldGVSZWN1cnNpdmVseV0oKSBtdXRhYmxlIHsKICAg
ICAgICAgYXV0byBtYWluVGhyZWFkQ2FsbGJhY2sgPSBbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3Jr
ZXJUaHJlYWQgPSBXVEZNb3ZlKHdvcmtlclRocmVhZCldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsK
ICAgICAgICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbY2Fs
bGJhY2tJZGVudGlmaWVyLCByZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0KV0gKGF1dG8m
IHNjb3BlKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBpZiAoYXV0byBjb25uZWN0aW9uID0g
ZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5maWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24oKSkKLSAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+ZGlkUmVtb3ZlRW50cnko
Y2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAgICAgICAgICAg
ICBjb25uZWN0aW9uLT5jb21wbGV0ZVZvaWRDYWxsYmFjayhjYWxsYmFja0lkZW50aWZpZXIsIFdU
Rk1vdmUocmVzdWx0KSk7CiAgICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9k
ZSgpKTsKICAgICAgICAgfTsKIApAQCAtMTY3LDEyICsxNjcsNiBAQCB2b2lkIFdvcmtlckZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6cmVtb3ZlRW50cnkoRmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIgaQogICAgIH0pOwogfQogCi12b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbjo6ZGlkUmVtb3ZlRW50cnkoQ2FsbGJhY2tJZGVudGlmaWVyIGNhbGxiYWNrSWRlbnRpZmll
ciwgRXhjZXB0aW9uT3I8dm9pZD4mJiByZXN1bHQpCi17Ci0gICAgaWYgKGF1dG8gY2FsbGJhY2sg
PSBtX3JlbW92ZUVudHJ5Q2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJZGVudGlmaWVyKSkKLSAgICAg
ICAgY2FsbGJhY2soV1RGTW92ZShyZXN1bHQpKTsKLX0KLQogdm9pZCBXb3JrZXJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb246OnJlc29sdmUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRl
bnRpZmllciwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgb3RoZXJJZGVudGlmaWVyLCBGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlJlc29sdmVDYWxsYmFjayYmIGNhbGxiYWNrKQogewog
ICAgIGlmICghbV9zY29wZSkKQEAgLTE5OSw0ICsxOTMsMTE2IEBAIHZvaWQgV29ya2VyRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpkaWRSZXNvbHZlKENhbGxiYWNrSWRlbnRpZmllciBjYWxs
YmFja0lkCiAgICAgICAgIGNhbGxiYWNrKFdURk1vdmUocmVzdWx0KSk7CiB9CiAKK3ZvaWQgV29y
a2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjb21wbGV0ZUludGVnZXJDYWxsYmFjayhD
YWxsYmFja0lkZW50aWZpZXIgY2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25Pcjx1aW50NjRf
dD4mJiByZXN1bHQpCit7CisgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX2ludGVnZXJDYWxsYmFj
a3MudGFrZShjYWxsYmFja0lkZW50aWZpZXIpKQorICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKHJl
c3VsdCkpOworfQorCit2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y29t
cGxldGVWb2lkQ2FsbGJhY2soQ2FsbGJhY2tJZGVudGlmaWVyIGNhbGxiYWNrSWRlbnRpZmllciwg
RXhjZXB0aW9uT3I8dm9pZD4mJiByZXN1bHQpCit7CisgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBt
X3ZvaWRDYWxsYmFja3MudGFrZShjYWxsYmFja0lkZW50aWZpZXIpKQorICAgICAgICBjYWxsYmFj
ayhXVEZNb3ZlKHJlc3VsdCkpOworfQorCit2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkludGVnZXJDYWxsYmFj
ayYmIGNhbGxiYWNrKQoreworICAgIGlmICghbV9zY29wZSkKKyAgICAgICAgcmV0dXJuIGNhbGxi
YWNrKEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOworCisgICAgYXV0byBjYWxsYmFj
a0lkZW50aWZpZXIgPSBDYWxsYmFja0lkZW50aWZpZXI6OmdlbmVyYXRlVGhyZWFkU2FmZSgpOwor
ICAgIG1faW50ZWdlckNhbGxiYWNrcy5hZGQoY2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKGNh
bGxiYWNrKSk7CisKKyAgICBjYWxsT25NYWluVGhyZWFkKFtjYWxsYmFja0lkZW50aWZpZXIsIHdv
cmtlclRocmVhZCA9IFJlZiB7IG1fc2NvcGUtPnRocmVhZCgpIH0sIG1haW5UaHJlYWRDb25uZWN0
aW9uID0gbV9tYWluVGhyZWFkQ29ubmVjdGlvbiwgaWRlbnRpZmllcl0oKSBtdXRhYmxlIHsKKyAg
ICAgICAgYXV0byBtYWluVGhyZWFkQ2FsbGJhY2sgPSBbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3Jr
ZXJUaHJlYWQgPSBXVEZNb3ZlKHdvcmtlclRocmVhZCldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsK
KyAgICAgICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbY2Fs
bGJhY2tJZGVudGlmaWVyLCByZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0KV0gKGF1dG8m
IHNjb3BlKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBjb25uZWN0aW9uID0g
ZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5maWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24oKSkKKyAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+Y29tcGxldGVJbnRlZ2Vy
Q2FsbGJhY2soY2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAg
ICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CisgICAgICAgIH07CisKKyAgICAg
ICAgbWFpblRocmVhZENvbm5lY3Rpb24tPmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoaWRlbnRpZmll
ciwgV1RGTW92ZShtYWluVGhyZWFkQ2FsbGJhY2spKTsKKyAgICB9KTsKK30KKwordm9pZCBXb3Jr
ZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldFNpemUoRmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgdWludDY0X3QgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpJbnRlZ2VyQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sK
KyAgICBpZiAoIW1fc2NvcGUpCisgICAgICAgIHJldHVybiBjYWxsYmFjayhFeGNlcHRpb24geyBJ
bnZhbGlkU3RhdGVFcnJvciB9KTsKKworICAgIGF1dG8gY2FsbGJhY2tJZGVudGlmaWVyID0gQ2Fs
bGJhY2tJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUoKTsKKyAgICBtX2ludGVnZXJDYWxs
YmFja3MuYWRkKGNhbGxiYWNrSWRlbnRpZmllciwgV1RGTW92ZShjYWxsYmFjaykpOworCisgICAg
Y2FsbE9uTWFpblRocmVhZChbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQgPSBSZWYg
eyBtX3Njb3BlLT50aHJlYWQoKSB9LCBtYWluVGhyZWFkQ29ubmVjdGlvbiA9IG1fbWFpblRocmVh
ZENvbm5lY3Rpb24sIGlkZW50aWZpZXIsIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXJdKCkgbXV0YWJs
ZSB7CisgICAgICAgIGF1dG8gbWFpblRocmVhZENhbGxiYWNrID0gW2NhbGxiYWNrSWRlbnRpZmll
ciwgd29ya2VyVGhyZWFkID0gV1RGTW92ZSh3b3JrZXJUaHJlYWQpXShhdXRvIHJlc3VsdCkgbXV0
YWJsZSB7CisgICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1v
ZGUoW2NhbGxiYWNrSWRlbnRpZmllciwgcmVzdWx0ID0gY3Jvc3NUaHJlYWRDb3B5KHJlc3VsdCld
IChhdXRvJiBzY29wZSkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gY29ubmVj
dGlvbiA9IGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPihzY29wZSkuZmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uKCkpCisgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPmNvbXBsZXRl
SW50ZWdlckNhbGxiYWNrKGNhbGxiYWNrSWRlbnRpZmllciwgV1RGTW92ZShyZXN1bHQpKTsKKyAg
ICAgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOworICAgICAgICB9Owor
CisgICAgICAgIG1haW5UaHJlYWRDb25uZWN0aW9uLT5nZXRTaXplKGlkZW50aWZpZXIsIGFjY2Vz
c0hhbmRsZUlkZW50aWZpZXIsIFdURk1vdmUobWFpblRocmVhZENhbGxiYWNrKSk7CisgICAgfSk7
Cit9CisKK3ZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjp0cnVuY2F0ZShG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50NjRfdCBhY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXplLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246
OlZvaWRDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIGlmICghbV9zY29wZSkKKyAgICAgICAg
cmV0dXJuIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOworCisgICAg
YXV0byBjYWxsYmFja0lkZW50aWZpZXIgPSBDYWxsYmFja0lkZW50aWZpZXI6OmdlbmVyYXRlVGhy
ZWFkU2FmZSgpOworICAgIG1fdm9pZENhbGxiYWNrcy5hZGQoY2FsbGJhY2tJZGVudGlmaWVyLCBX
VEZNb3ZlKGNhbGxiYWNrKSk7CisKKyAgICBjYWxsT25NYWluVGhyZWFkKFtjYWxsYmFja0lkZW50
aWZpZXIsIHdvcmtlclRocmVhZCA9IFJlZiB7IG1fc2NvcGUtPnRocmVhZCgpIH0sIG1haW5UaHJl
YWRDb25uZWN0aW9uID0gbV9tYWluVGhyZWFkQ29ubmVjdGlvbiwgaWRlbnRpZmllciwgYWNjZXNz
SGFuZGxlSWRlbnRpZmllciwgc2l6ZV0oKSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byBtYWluVGhy
ZWFkQ2FsbGJhY2sgPSBbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQgPSBXVEZNb3Zl
KHdvcmtlclRocmVhZCldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgICAgIHdvcmtl
clRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbY2FsbGJhY2tJZGVudGlmaWVyLCBy
ZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0KV0gKGF1dG8mIHNjb3BlKSBtdXRhYmxlIHsK
KyAgICAgICAgICAgICAgICBpZiAoYXV0byBjb25uZWN0aW9uID0gZG93bmNhc3Q8V29ya2VyR2xv
YmFsU2NvcGU+KHNjb3BlKS5maWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oKSkKKyAgICAgICAg
ICAgICAgICAgICAgY29ubmVjdGlvbi0+Y29tcGxldGVWb2lkQ2FsbGJhY2soY2FsbGJhY2tJZGVu
dGlmaWVyLCBXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAgICAgfSwgV29ya2VyUnVuTG9vcDo6
ZGVmYXVsdE1vZGUoKSk7CisgICAgICAgIH07CisKKyAgICAgICAgbWFpblRocmVhZENvbm5lY3Rp
b24tPnRydW5jYXRlKGlkZW50aWZpZXIsIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHNpemUsIFdU
Rk1vdmUobWFpblRocmVhZENhbGxiYWNrKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV29ya2VyRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpmbHVzaChGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciBpZGVudGlmaWVyLCB1aW50NjRfdCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIGlmICgh
bV9zY29wZSkKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0
ZUVycm9yIH0pOworCisgICAgYXV0byBjYWxsYmFja0lkZW50aWZpZXIgPSBDYWxsYmFja0lkZW50
aWZpZXI6OmdlbmVyYXRlVGhyZWFkU2FmZSgpOworICAgIG1fdm9pZENhbGxiYWNrcy5hZGQoY2Fs
bGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisKKyAgICBjYWxsT25NYWluVGhy
ZWFkKFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFJlZiB7IG1fc2NvcGUtPnRo
cmVhZCgpIH0sIG1haW5UaHJlYWRDb25uZWN0aW9uID0gbV9tYWluVGhyZWFkQ29ubmVjdGlvbiwg
aWRlbnRpZmllciwgYWNjZXNzSGFuZGxlSWRlbnRpZmllcl0oKSBtdXRhYmxlIHsKKyAgICAgICAg
YXV0byBtYWluVGhyZWFkQ2FsbGJhY2sgPSBbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3JrZXJUaHJl
YWQgPSBXVEZNb3ZlKHdvcmtlclRocmVhZCldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAg
ICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbY2FsbGJhY2tJ
ZGVudGlmaWVyLCByZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0KV0gKGF1dG8mIHNjb3Bl
KSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBjb25uZWN0aW9uID0gZG93bmNh
c3Q8V29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5maWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24o
KSkKKyAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+Y29tcGxldGVWb2lkQ2FsbGJhY2so
Y2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAgICAgfSwgV29y
a2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CisgICAgICAgIH07CisKKyAgICAgICAgbWFpblRo
cmVhZENvbm5lY3Rpb24tPmZsdXNoKGlkZW50aWZpZXIsIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIs
IFdURk1vdmUobWFpblRocmVhZENhbGxiYWNrKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV29ya2Vy
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjbG9zZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciBpZGVudGlmaWVyLCB1aW50NjRfdCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIGlm
ICghbV9zY29wZSkKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IEludmFsaWRT
dGF0ZUVycm9yIH0pOworCisgICAgYXV0byBjYWxsYmFja0lkZW50aWZpZXIgPSBDYWxsYmFja0lk
ZW50aWZpZXI6OmdlbmVyYXRlVGhyZWFkU2FmZSgpOworICAgIG1fdm9pZENhbGxiYWNrcy5hZGQo
Y2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisKKyAgICBjYWxsT25NYWlu
VGhyZWFkKFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFJlZiB7IG1fc2NvcGUt
PnRocmVhZCgpIH0sIG1haW5UaHJlYWRDb25uZWN0aW9uID0gbV9tYWluVGhyZWFkQ29ubmVjdGlv
biwgaWRlbnRpZmllciwgYWNjZXNzSGFuZGxlSWRlbnRpZmllcl0oKSBtdXRhYmxlIHsKKyAgICAg
ICAgYXV0byBtYWluVGhyZWFkQ2FsbGJhY2sgPSBbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3JrZXJU
aHJlYWQgPSBXVEZNb3ZlKHdvcmtlclRocmVhZCldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAg
ICAgICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbY2FsbGJh
Y2tJZGVudGlmaWVyLCByZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0KV0gKGF1dG8mIHNj
b3BlKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBjb25uZWN0aW9uID0gZG93
bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5maWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24oKSkKKyAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+Y29tcGxldGVWb2lkQ2FsbGJh
Y2soY2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAgICAgfSwg
V29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CisgICAgICAgIH07CisKKyAgICAgICAgbWFp
blRocmVhZENvbm5lY3Rpb24tPmNsb3NlKGlkZW50aWZpZXIsIGFjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIsIFdURk1vdmUobWFpblRocmVhZENhbGxiYWNrKSk7CisgICAgfSk7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24uaAppbmRleCBlYzY5ZDE3NWEyZjc1OWYwNmIzZjFjNTQ3NDRkNzEwYzllNjFjM2Fj
Li4zZDU3MzM4OGU4ZDM4ZGU3NzFlOGEyYWQzNWRiYTY4MDNhYTY1ZGUzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCkBAIC00Niw4ICs0Niw5
IEBAIHB1YmxpYzoKICAgICB1c2luZyBDYWxsYmFja0lkZW50aWZpZXIgPSBXb3JrZXJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb25DYWxsYmFja0lkZW50aWZpZXI7CiAgICAgdm9pZCBkaWRJc1Nh
bWVFbnRyeShDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPGJvb2w+JiYpOwogICAgIHZv
aWQgZGlkR2V0SGFuZGxlKENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8RmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXI+JiYpOwotICAgIHZvaWQgZGlkUmVtb3ZlRW50cnkoQ2FsbGJhY2tJ
ZGVudGlmaWVyLCBFeGNlcHRpb25Pcjx2b2lkPiYmKTsKICAgICB2b2lkIGRpZFJlc29sdmUoQ2Fs
bGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxWZWN0b3I8U3RyaW5nPj4mJik7CisgICAgdm9p
ZCBjb21wbGV0ZVZvaWRDYWxsYmFjayhDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPHZv
aWQ+JiYgcmVzdWx0KTsKKyAgICB2b2lkIGNvbXBsZXRlSW50ZWdlckNhbGxiYWNrKENhbGxiYWNr
SWRlbnRpZmllciwgRXhjZXB0aW9uT3I8dWludDY0X3Q+JiYgcmVzdWx0KTsKIAogcHJpdmF0ZToK
ICAgICBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oV29ya2VyR2xvYmFsU2NvcGUm
LCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsKQEAgLTU2LDE1ICs1NywyMiBA
QCBwcml2YXRlOgogICAgIHZvaWQgaXNTYW1lRW50cnkoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b246OlNhbWVFbnRyeUNhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgZ2V0RmlsZUhhbmRsZShG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0
ZUlmTmVjZXNzYXJ5LCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhhbmRsZUNhbGxi
YWNrJiYpIGZpbmFsOwogICAgIHZvaWQgZ2V0RGlyZWN0b3J5SGFuZGxlKEZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3Nhcnks
IEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0SGFuZGxlQ2FsbGJhY2smJikgZmluYWw7
Ci0gICAgdm9pZCByZW1vdmVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OlJlbW92ZUVudHJ5Q2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCByZW1vdmVF
bnRyeShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29s
IGRlbGV0ZVJlY3Vyc2l2ZWx5LCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxs
YmFjayYmKSBmaW5hbDsKICAgICB2b2lkIHJlc29sdmUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b246OlJlc29sdmVDYWxsYmFjayYmKSBmaW5hbDsKIAorICAgIHZvaWQgY3JlYXRlU3luY0FjY2Vz
c0hhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpJbnRlZ2VyQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBnZXRTaXplKEZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkludGVnZXJDYWxsYmFjayYmKSBmaW5hbDsKKyAg
ICB2b2lkIHRydW5jYXRlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBhY2Nl
c3NIYW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXplLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb246OlZvaWRDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIGZsdXNoKEZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIGNs
b3NlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBhY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmKSBmaW5h
bDsKKwogICAgIFdlYWtQdHI8V29ya2VyR2xvYmFsU2NvcGU+IG1fc2NvcGU7CiAgICAgUmVmUHRy
PEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4gbV9tYWluVGhyZWFkQ29ubmVjdGlvbjsKICAg
ICBIYXNoTWFwPENhbGxiYWNrSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OjpTYW1lRW50cnlDYWxsYmFjaz4gbV9zYW1lRW50cnlDYWxsYmFja3M7CiAgICAgSGFzaE1hcDxD
YWxsYmFja0lkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0SGFuZGxl
Q2FsbGJhY2s+IG1fZ2V0SGFuZGxlQ2FsbGJhY2tzOwotICAgIEhhc2hNYXA8Q2FsbGJhY2tJZGVu
dGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlJlbW92ZUVudHJ5Q2FsbGJhY2s+
IG1fcmVtb3ZlRW50cnlDYWxsYmFja3M7CiAgICAgSGFzaE1hcDxDYWxsYmFja0lkZW50aWZpZXIs
IEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6UmVzb2x2ZUNhbGxiYWNrPiBtX3Jlc29sdmVD
YWxsYmFja3M7CisgICAgSGFzaE1hcDxDYWxsYmFja0lkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbjo6Vm9pZENhbGxiYWNrPiBtX3ZvaWRDYWxsYmFja3M7CisgICAgSGFzaE1h
cDxDYWxsYmFja0lkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6SW50ZWdl
ckNhbGxiYWNrPiBtX2ludGVnZXJDYWxsYmFja3M7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0CmluZGV4IGQ0ZWFlZGVmMWVhNTFkZThiMTExNmQyMDg3ZjJjNDBmNDUx
MWJlNzUuLmVjYTY5NTRiODljN2Q5MzJlODY5YjRiNzUzYzk5ZThjMzgxODE0Y2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CkBAIC02MSw2ICs2MSw3IEBAIE1vZHVsZXMvZmV0Y2gvV2luZG93T3JXb3JrZXJHbG9i
YWxTY29wZUZldGNoLmNwcAogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJl
Y3RvcnlIYW5kbGUuY3BwCiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVI
YW5kbGUuY3BwCiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5jcHAK
K01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAK
IE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24uY3BwCiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb05vdGlmaWVyLmNwcAogTW9kdWxlcy9nZW9s
b2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAKQEAgLTMwNDQsNiArMzA0NSw3IEBAIEpTRmlsZVN5c3Rl
bUVudHJ5Q2FsbGJhY2suY3BwCiBKU0ZpbGVTeXN0ZW1GaWxlRW50cnkuY3BwCiBKU0ZpbGVTeXN0
ZW1GaWxlSGFuZGxlLmNwcAogSlNGaWxlU3lzdGVtSGFuZGxlLmNwcAorSlNGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZS5jcHAKIEpTRmlsbE1vZGUuY3BwCiBKU0ZvY3VzRXZlbnQuY3BwCiBKU0Zv
Y3VzT3B0aW9ucy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCBlZDY1MGFlNjZjYWU1OTQ4OTNjYzRhYzNiZDBiODFkYjY5YTlk
MmMxLi5iNzdiMDk4MzgzYmQxNGM0NmEwZmNhNjY4OTM4ZTExN2Y2MGExM2E3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yOTYz
LDYgKzI5NjMsNyBAQAogCQk5M0Q2QjdBODI1NTFENDFGMDA1OEREM0EgLyogRHVtbXlTcGVlY2hS
ZWNvZ25pdGlvblByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5M0Q2QjdBNjI1NTFEM0VEMDA1OEREM0EgLyogRHVtbXlTcGVlY2hSZWNvZ25p
dGlvblByb3ZpZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJOTNEOUQ1M0MwREEyN0UxODAwNzcyMTZDIC8qIFJhbmdlQm91bmRhcnlQb2ludC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNEOUQ1M0Iw
REEyN0UxODAwNzcyMTZDIC8qIFJhbmdlQm91bmRhcnlQb2ludC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRTI0MUZGMEIyQjRFNDAwMEM3MzJB
MSAvKiBIVE1MRnJhbWVPd25lckVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTI0MUZFMEIyQjRFNDAwMEM3MzJBMSAvKiBIVE1MRnJhbWVP
d25lckVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQk5M0UyNjlBMjI3MEE1RDVEMDAyQzRGRjAgLyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
RTI2OTlGMjcwQTVENUMwMDJDNEZGMCAvKiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRTJBMzA3
MTIzRTlEQzAwMDlGRTEyQSAvKiBIVE1MUGFyc2VySWRpb21zLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0UyQTMwNTEyM0U5REMwMDA5RkUxMkEgLyog
SFRNTFBhcnNlcklkaW9tcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTkzRTVCMjY1MjQ1NUU5NkYwMDVDNTJEMCAvKiBBdHRyaWJ1dGVkU3RyaW5n
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0U1QjI2
MzI0NTVFOTZGMDA1QzUyRDAgLyogQXR0cmlidXRlZFN0cmluZy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRjE5OEU1MDgyNDVFNTkwMDFFOUFC
QyAvKiBIVE1MRG9jdW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY1MjNEMjNDMDJERTQzOTYwMTg2MzVDQSAvKiBIVE1MRG9jdW1lbnQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTE5OTIsNiAr
MTE5OTMsOSBAQAogCQk5M0UyMjdERjBBRjU4OUFEMDBENDgzMjQgLyogU3VicmVzb3VyY2VMb2Fk
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3VicmVzb3VyY2VM
b2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0UyNDFGRTBCMkI0RTQw
MDBDNzMyQTEgLyogSFRNTEZyYW1lT3duZXJFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEhUTUxGcmFtZU93bmVyRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5M0UyNDI1RTBCMkI1MDk1MDBDNzMyQTEgLyogSFRNTEZyYW1lT3duZXJFbGVt
ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxGcmFtZU93
bmVyRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRTI2OTlEMjcw
QTVENUIwMDJDNEZGMCAvKiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5M0UyNjk5RjI3MEE1RDVDMDAyQzRGRjAgLyogRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTNFMjY5QTAyNzBBNUQ1QzAwMkM0RkYwIC8qIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNFMkEzMDQxMjNF
OURDMDAwOUZFMTJBIC8qIEhUTUxQYXJzZXJJZGlvbXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSFRNTFBhcnNlcklkaW9tcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTkzRTJBMzA1MTIzRTlEQzAwMDlGRTEyQSAvKiBIVE1MUGFyc2VySWRpb21z
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxQYXJzZXJJZGlvbXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNFNUIyNTQyNDUzNkIxRTAwNUM1MkQwIC8q
IFVSTERlY29tcG9zaXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gVVJMRGVjb21wb3NpdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0y
MzQzMCw2ICsyMzQzNCw5IEBACiAJCQkJOTMyQzlCRDkyNkRENjI2MDAwNTNCM0RCIC8qIEZpbGVT
eXN0ZW1IYW5kbGUuaWRsICovLAogCQkJCTkzNTQyNDI3MjcwM0JDODgwMDVDQTcyQyAvKiBGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllci5oICovLAogCQkJCTkzNTQyNDI5MjcwM0JDQUQwMDVDQTcy
QyAvKiBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCAqLywKKwkJCQk5M0UyNjlBMDI3MEE1
RDVDMDAyQzRGRjAgLyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwICovLAorCQkJCTkz
RTI2OTlGMjcwQTVENUMwMDJDNEZGMCAvKiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oICov
LAorCQkJCTkzRTI2OTlEMjcwQTVENUIwMDJDNEZGMCAvKiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZS5pZGwgKi8sCiAJCQkJOTM0NDNFN0IyNkU4QTZCQzAwNTg1MzhGIC8qIFN0b3JhZ2VNYW5h
Z2VyK0ZpbGVTeXN0ZW1BY2Nlc3MuaWRsICovLAogCQkJCTkzNDQzRTdEMjZFOEE2QkMwMDU4NTM4
RiAvKiBTdG9yYWdlTWFuYWdlckZpbGVTeXN0ZW1BY2Nlc3MuaCAqLywKIAkJCQk5MzIzM0M4NTI3
MDU0Qzc4MDBCQkY0MUUgLyogV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcCAq
LywKQEAgLTMyNTQ2LDYgKzMyNTUzLDcgQEAKIAkJCQk5MzQ0M0U4ODI2RTk5NUM0MDA1ODUzOEYg
LyogRmlsZVN5c3RlbUhhbmRsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM1NDI0MkYyNzAzQ0E1
MTAwNUNBNzJDIC8qIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk5MzU0MjQzMDI3MDNDQjg2MDA1Q0E3MkMgLyogRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0UyNjlBMjI3MEE1RDVEMDAyQzRGRjAgLyogRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNUVCNjlGMEU4
MURBRUIwMEIyNTk2NSAvKiBGaWxsTGF5ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTcxMkJFNDgz
MUZFODY1REQwMDIwMzFDQyAvKiBGaWxsTW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODQ1RTcy
RjgwRkQyNjFFRTAwQTg3RDc5IC8qIEZpbHRlci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5kZXggZTgzNWRm
N2ZmMGIyMjBkZWJhMDU4ZmQzYTg0ZGY1ZDJjMjUxMzk1Yy4uMmJiOWE5MzliZmNiNmE5NzU4ODYy
Zjc4ODU2NmU3MmMwNGEwZTcwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1dlYkNvcmVCdWlsdGluTmFtZXMuaApAQCAtMTI0LDYgKzEyNCw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICBtYWNybyhGaWxlU3lzdGVtRmlsZUVudHJ5KSBcCiAgICAgbWFjcm8oRmlsZVN5
c3RlbUZpbGVIYW5kbGUpIFwKICAgICBtYWNybyhGaWxlU3lzdGVtSGFuZGxlKSBcCisgICAgbWFj
cm8oRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUpIFwKICAgICBtYWNybyhHYW1lcGFkKSBcCiAg
ICAgbWFjcm8oR2FtZXBhZEJ1dHRvbikgXAogICAgIG1hY3JvKEdhbWVwYWRFdmVudCkgXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3IuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxl
U3lzdGVtU3RvcmFnZUVycm9yLmgKaW5kZXggNDQzYzk1MTRjZDkzMjkxM2RkZTM0YzI3ZjZiNWI1
NzIwMWEwYTQxZi4uODU4NjU1NDA0YmQ2MTFhZDhmMjQ1NzMxYjM4MDBlNzNkMTMwYWI2MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oCkBAIC0zNCw2ICszNCw3IEBAIGVudW0gY2xhc3MgRmls
ZVN5c3RlbVN0b3JhZ2VFcnJvciA6IHVpbnQ4X3QgewogICAgIEZpbGVOb3RGb3VuZCwKICAgICBJ
bnZhbGlkTmFtZSwKICAgICBJbnZhbGlkTW9kaWZpY2F0aW9uLAorICAgIEludmFsaWRTdGF0ZSwK
ICAgICBUeXBlTWlzbWF0Y2gsCiAgICAgVW5rbm93bgogfTsKQEAgLTQ5LDYgKzUwLDggQEAgaW5s
aW5lIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgY29udmVydFRvRXhjZXB0aW9uQ29kZShGaWxlU3lz
dGVtU3RvcmFnZUVycm9yIGVycm8KICAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbkNv
ZGU6OlR5cGVFcnJvcjsKICAgICBjYXNlIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWRO
YW1lOgogICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uQ29kZTo6VW5rbm93bkVycm9y
OworICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxpZFN0YXRlOgorICAgICAg
ICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uQ29kZTo6SW52YWxpZFN0YXRlRXJyb3I7CiAgICAg
Y2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOgogICAgICAgICBicmVhazsKICAg
ICB9CkBAIC02Niw2ICs2OSw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViS2l0
OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiB7CiAgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcjo6RmlsZU5vdEZvdW5kLAogICAgICAgICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9y
YWdlRXJyb3I6OkludmFsaWROYW1lLAogICAgICAgICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I6OkludmFsaWRNb2RpZmljYXRpb24sCisgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcjo6SW52YWxpZFN0YXRlLAogICAgICAgICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9y
YWdlRXJyb3I6OlR5cGVNaXNtYXRjaCwKICAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFn
ZUVycm9yOjpVbmtub3duCiAgICAgPjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3BwCmlu
ZGV4IDIyYmMzZWY0ZWQyNzhhMTllMjQwNmM3OTQwY2ZiNmM4MzhkOTJkZWMuLjI1ZGQ3ODNmYWIy
ZjEwNDRmNTVjOGY1Y2M4MDYzZjliMjM2OWVjNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VF
cnJvci5oIgogI2luY2x1ZGUgIkZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oIgorI2luY2x1ZGUg
PHd0Zi9TY29wZS5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtMTM5LDQgKzE0MCw4NyBA
QCBFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGU6OnJlc29sdgogICAgIHJldHVybiByZXN0UGF0aC5zcGxpdChwYXRo
U2VwYXJhdG9yKTsKIH0KIAorRXhwZWN0ZWQ8dWludDY0X3QsIEZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKCkKK3sK
KyAgICBpZiAoIW1fbWFuYWdlcikKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24pOworCisgICAgYm9vbCBhY3F1aXJlZCA9IG1fbWFu
YWdlci0+YWNxdWlyZUxvY2tGb3JGaWxlKG1fcGF0aCwgbV9pZGVudGlmaWVyKTsKKyAgICBpZiAo
IWFjcXVpcmVkKQorICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvcjo6SW52YWxpZFN0YXRlKTsKKworICAgIEFTU0VSVCghbV9hY3RpdmVTeW5jQWNjZXNz
SGFuZGxlKTsKKyAgICBtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgPSBtX25leHRBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyOworICAgIHJldHVybiBtX25leHRBY2Nlc3NIYW5kbGVJZGVudGlmaWVyKys7
Cit9CisKK0V4cGVjdGVkPHVpbnQ2NF90LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZTo6Z2V0U2l6ZSh1aW50NjRfdCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVy
KQoreworICAgIGlmICghbV9tYW5hZ2VyKQorICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQo
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bik7CisKKyAgICBpZiAoIW1fYWN0aXZlU3lu
Y0FjY2Vzc0hhbmRsZSB8fCBtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUudmFsdWUoKSAhPSBhY2Nl
c3NIYW5kbGVJZGVudGlmaWVyKQorICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmlsZVN5
c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bik7CisKKyAgICBhdXRvIHNpemUgPSBGaWxlU3lzdGVt
OjpmaWxlU2l6ZShtX3BhdGgpOworICAgIGlmICghc2l6ZSkKKyAgICAgICAgcmV0dXJuIG1ha2VV
bmV4cGVjdGVkKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24pOworCisgICAgcmV0dXJu
IHNpemUudmFsdWUoKTsKK30KKworc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9y
PiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6dHJ1bmNhdGUodWludDY0X3QgYWNjZXNzSGFuZGxl
SWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSkKK3sKKyAgICBpZiAoIW1fbWFuYWdlcikKKyAgICAg
ICAgcmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd247CisKKyAgICBpZiAoIW1f
YWN0aXZlU3luY0FjY2Vzc0hhbmRsZSB8fCBtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUudmFsdWUo
KSAhPSBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKQorICAgICAgICByZXR1cm4gRmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcjo6VW5rbm93bjsKKworICAgIGF1dG8gaGFuZGxlID0gRmlsZVN5c3RlbTo6b3Bl
bkZpbGUobV9wYXRoLCBGaWxlU3lzdGVtOjpGaWxlT3Blbk1vZGU6OlJlYWRXcml0ZSk7CisgICAg
YXV0byBjbG9zZUZpbGVTY29wZSA9IG1ha2VTY29wZUV4aXQoWyZdIHsKKyAgICAgICAgRmlsZVN5
c3RlbTo6Y2xvc2VGaWxlKGhhbmRsZSk7CisgICAgfSk7CisKKyAgICBhdXRvIHJlc3VsdCA9IEZp
bGVTeXN0ZW06OnRydW5jYXRlRmlsZShoYW5kbGUsIHNpemUpOworICAgIGlmICghcmVzdWx0KQor
ICAgICAgICByZXR1cm4gRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bjsKKworICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7Cit9CisKK3N0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmZsdXNoKHVpbnQ2NF90IGFjY2Vzc0hhbmRs
ZUlkZW50aWZpZXIpCit7CisgICAgaWYgKCFtX21hbmFnZXIpCisgICAgICAgIHJldHVybiBGaWxl
U3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOworCisgICAgaWYgKCFtX2FjdGl2ZVN5bmNBY2Nl
c3NIYW5kbGUgfHwgbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlLnZhbHVlKCkgIT0gYWNjZXNzSGFu
ZGxlSWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVu
a25vd247CisKKyAgICBhdXRvIGhhbmRsZSA9IEZpbGVTeXN0ZW06Om9wZW5GaWxlKG1fcGF0aCwg
RmlsZVN5c3RlbTo6RmlsZU9wZW5Nb2RlOjpSZWFkV3JpdGUpOworICAgIGF1dG8gY2xvc2VGaWxl
U2NvcGUgPSBtYWtlU2NvcGVFeGl0KFsmXSB7CisgICAgICAgIEZpbGVTeXN0ZW06OmNsb3NlRmls
ZShoYW5kbGUpOworICAgIH0pOworCisgICAgYXV0byByZXN1bHQgPSBGaWxlU3lzdGVtOjpmbHVz
aEZpbGUoaGFuZGxlKTsKKyAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgcmV0dXJuIEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I6OlVua25vd247CisKKyAgICByZXR1cm4gc3RkOjpudWxsb3B0OworfQor
CitzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdl
SGFuZGxlOjpjbG9zZSh1aW50NjRfdCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKQoreworICAgIGlm
ICghbV9tYW5hZ2VyKQorICAgICAgICByZXR1cm4gRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5r
bm93bjsKKworICAgIGlmICghbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlIHx8IG1fYWN0aXZlU3lu
Y0FjY2Vzc0hhbmRsZS52YWx1ZSgpICE9IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpCisgICAgICAg
IHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOworCisgICAgbV9tYW5hZ2Vy
LT5yZWxlYXNlTG9ja0ZvckZpbGUobV9wYXRoLCBtX2lkZW50aWZpZXIpOworICAgIG1fYWN0aXZl
U3luY0FjY2Vzc0hhbmRsZSA9IHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmggYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUu
aAppbmRleCA4Nzk5MDkwN2Q5Yjg5YTUyM2Y3ZmYxZjU1MDcwYTU3MDY0MGFiM2IyLi42YjkwMzk4
ODliMWM3OTMyMTkwYjM2MThhNWM4YTI5NTQwMTVkMzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VI
YW5kbGUuaApAQCAtNDksNiArNDksMTIgQEAgcHVibGljOgogICAgIHN0ZDo6b3B0aW9uYWw8Rmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVtb3ZlRW50cnkoY29uc3QgU3RyaW5nJiBuYW1lLCBib29s
IGRlbGV0ZVJlY3Vyc2l2ZWx5KTsKICAgICBFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgRmlsZVN5
c3RlbVN0b3JhZ2VFcnJvcj4gcmVzb2x2ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
Zmllcik7CiAKKyAgICBFeHBlY3RlZDx1aW50NjRfdCwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4g
Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpOworICAgIEV4cGVjdGVkPHVpbnQ2NF90LCBGaWxlU3lz
dGVtU3RvcmFnZUVycm9yPiBnZXRTaXplKHVpbnQ2NF90IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIp
OworICAgIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gdHJ1bmNhdGUodWlu
dDY0X3QgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSk7CisgICAgc3RkOjpv
cHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBmbHVzaCh1aW50NjRfdCBhY2Nlc3NIYW5k
bGVJZGVudGlmaWVyKTsKKyAgICBzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+
IGNsb3NlKHVpbnQ2NF90IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpOworCiBwcml2YXRlOgogICAg
IEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVt
U3RvcmFnZUVycm9yPiByZXF1ZXN0Q3JlYXRlSGFuZGxlKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVl
SUQsIFR5cGUsIFN0cmluZyYmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnkpOwogCkBAIC01
Nyw2ICs2Myw4IEBAIHByaXZhdGU6CiAgICAgVHlwZSBtX3R5cGU7CiAgICAgU3RyaW5nIG1fcGF0
aDsKICAgICBTdHJpbmcgbV9uYW1lOworICAgIHVpbnQ2NF90IG1fbmV4dEFjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIgeyAxIH07CisgICAgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gbV9hY3RpdmVTeW5j
QWNjZXNzSGFuZGxlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVt
U3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IDFiN2E1MWEyZjY4ODQxNWMzOTZiNWI0OGZkYzA1Zjk5
NWZjNmQzZGUuLjk0OGVlYjdjMTcxNTVhMTM3MzgwZDdiZjY4MjA0MTI4NzRhNWI3YzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3Rv
cmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFn
ZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNs
dWRlICJGaWxlU3lzdGVtU3RvcmFnZUVycm9yLmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3Jh
Z2VIYW5kbGVSZWdpc3RyeS5oIgorI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIApAQCAtODcsMTUgKzg4LDIxIEBAIHZvaWQgRmlsZVN5c3RlbVN0b3JhZ2VNYW5h
Z2VyOjpjb25uZWN0aW9uQ2xvc2VkKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQgY29ubmVjCiB7
CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBhdXRvIGhhbmRsZXMgPSBt
X2hhbmRsZXNCeUNvbm5lY3Rpb24uZmluZChjb25uZWN0aW9uKTsKLSAgICBpZiAoaGFuZGxlcyA9
PSBtX2hhbmRsZXNCeUNvbm5lY3Rpb24uZW5kKCkpCisgICAgYXV0byBjb25uZWN0aW9uSGFuZGxl
cyA9IG1faGFuZGxlc0J5Q29ubmVjdGlvbi5maW5kKGNvbm5lY3Rpb24pOworICAgIGlmIChjb25u
ZWN0aW9uSGFuZGxlcyA9PSBtX2hhbmRsZXNCeUNvbm5lY3Rpb24uZW5kKCkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIGZvciAoYXV0byBoYW5kbGVJZGVudGlmaWVyIDogaGFuZGxlcy0+dmFsdWUp
IHsKLSAgICAgICAgYXV0byBoYW5kbGUgPSBtX2hhbmRsZXMudGFrZShoYW5kbGVJZGVudGlmaWVy
KTsKLSAgICAgICAgbV9yZWdpc3RyeS51bnJlZ2lzdGVySGFuZGxlKGhhbmRsZUlkZW50aWZpZXIp
OworICAgIGF1dG8gaWRlbnRpZmllcnMgPSBjb25uZWN0aW9uSGFuZGxlcy0+dmFsdWU7CisgICAg
Zm9yIChhdXRvIGlkZW50aWZpZXIgOiBpZGVudGlmaWVycykgeworICAgICAgICBhdXRvIGhhbmRs
ZSA9IG1faGFuZGxlcy50YWtlKGlkZW50aWZpZXIpOworICAgICAgICBtX3JlZ2lzdHJ5LnVucmVn
aXN0ZXJIYW5kbGUoaWRlbnRpZmllcik7CiAgICAgfQotICAgIG1faGFuZGxlc0J5Q29ubmVjdGlv
bi5yZW1vdmUoaGFuZGxlcyk7CisKKyAgICBtX2xvY2tNYXAucmVtb3ZlSWYoWyZpZGVudGlmaWVy
c10oYXV0byYgZW50cnkpIHsKKyAgICAgICAgcmV0dXJuIGlkZW50aWZpZXJzLmNvbnRhaW5zKGVu
dHJ5LnZhbHVlKTsKKyAgICB9KTsKKworICAgIG1faGFuZGxlc0J5Q29ubmVjdGlvbi5yZW1vdmUo
Y29ubmVjdGlvbkhhbmRsZXMpOwogfQogCiBFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VN
YW5hZ2VyOjpnZXREaXJlY3RvcnkoSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCBjb25uZWN0aW9u
KQpAQCAtMTA1LDQgKzExMiwyMyBAQCBFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbQogICAgIHJldHVy
biBjcmVhdGVIYW5kbGUoY29ubmVjdGlvbiwgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OlR5cGU6
OkRpcmVjdG9yeSwgU3RyaW5nIHsgbV9wYXRoIH0sIHsgfSwgdHJ1ZSk7CiB9CiAKK2Jvb2wgRmls
ZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOjphY3F1aXJlTG9ja0ZvckZpbGUoY29uc3QgU3RyaW5nJiBw
YXRoLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQorewor
ICAgIGlmIChtX2xvY2tNYXAuY29udGFpbnMocGF0aCkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIG1fbG9ja01hcC5hZGQocGF0aCwgaWRlbnRpZmllcik7CisgICAgcmV0dXJuIHRydWU7
Cit9CisKK2Jvb2wgRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOjpyZWxlYXNlTG9ja0ZvckZpbGUo
Y29uc3QgU3RyaW5nJiBwYXRoLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBp
ZGVudGlmaWVyKQoreworICAgIGlmIChhdXRvIGxvY2tlZEJ5SWRlbnRpZmllciA9IG1fbG9ja01h
cC5nZXQocGF0aCk7IGxvY2tlZEJ5SWRlbnRpZmllciA9PSBpZGVudGlmaWVyKSB7CisgICAgICAg
IG1fbG9ja01hcC5yZW1vdmUocGF0aCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKwor
ICAgIHJldHVybiBmYWxzZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VN
YW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3Rl
bVN0b3JhZ2VNYW5hZ2VyLmgKaW5kZXggOGI0MzhiMmU5M2RmNGE4NDQ3YzNiNzc0MGJjNTRjODdm
Y2E0MzE5Zi4uMWFlYmE5ZGFmNzk2OGM2OGQ4ZmU4YjNiZTdiNjc1NTI4M2Q3NjEzMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9y
YWdlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9G
aWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuaApAQCAtNDMsMTIgKzQzLDE1IEBAIHB1YmxpYzoKICAg
ICBjb25zdCBTdHJpbmcmIGdldFBhdGgoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIpOwogICAgIHZvaWQgY29ubmVjdGlvbkNsb3NlZChJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlE
KTsKICAgICBFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcj4gZ2V0RGlyZWN0b3J5KElQQzo6Q29ubmVjdGlvbjo6VW5pcXVl
SUQpOworICAgIGJvb2wgYWNxdWlyZUxvY2tGb3JGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCwgV2Vi
Q29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIpOworICAgIGJvb2wgcmVsZWFzZUxvY2tG
b3JGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIpOwogCiBwcml2YXRlOgogICAgIFN0cmluZyBtX3BhdGg7CiAgICAgRmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGVSZWdpc3RyeSYgbV9yZWdpc3RyeTsKICAgICBIYXNoTWFwPElQQzo6Q29ubmVj
dGlvbjo6VW5pcXVlSUQsIEhhc2hTZXQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXI+PiBtX2hhbmRsZXNCeUNvbm5lY3Rpb247CiAgICAgSGFzaE1hcDxXZWJDb3JlOjpGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPEZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlPj4gbV9oYW5kbGVzOworICAgIEhhc2hNYXA8U3RyaW5nLCBXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllcj4gbV9sb2NrTWFwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29y
a1N0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFn
ZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IDY3YWViYTUyMDZhNjYyYzYxZDliMGU1
NmQ1NTk1MDljYjEyYTUwMjUuLjE5NWRjYTVkNTA3MWZkYzk5NTNmMTQ3YjBiNWZhZjA5ZjRmOTky
NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3
b3JrU3RvcmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC0yMjYsNSArMjI2LDYwIEBAIHZv
aWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpyZXNvbHZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyIGlkZW50aWZpCiAgICAgY29tcGxldGlvbkhhbmRsZXIoaGFuZGxlLT5yZXNv
bHZlKHRhcmdldElkZW50aWZpZXIpKTsKIH0KIAordm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6
OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDx1aW50NjRfdCwg
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIEFT
U0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgYXV0byBoYW5kbGUgPSBtX2ZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnktPmdldEhhbmRsZShpZGVudGlmaWVyKTsKKyAgICBpZiAo
IWhhbmRsZSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKG1ha2VVbmV4cGVjdGVk
KEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24pKTsKKworICAgIGNvbXBsZXRpb25IYW5k
bGVyKGhhbmRsZS0+Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpKTsKK30KKwordm9pZCBOZXR3b3Jr
U3RvcmFnZU1hbmFnZXI6OmdldFNpemVGb3JBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgdWludDY0X3QgYWNjZXNzSGFuZGxlSWRlbnRp
ZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDx1aW50NjRfdCwgRmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIEFTU0VSVCghUnVu
TG9vcDo6aXNNYWluKCkpOworCisgICAgYXV0byBoYW5kbGUgPSBtX2ZpbGVTeXN0ZW1TdG9yYWdl
SGFuZGxlUmVnaXN0cnktPmdldEhhbmRsZShpZGVudGlmaWVyKTsKKyAgICBpZiAoIWhhbmRsZSkK
KyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKG1ha2VVbmV4cGVjdGVkKEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I6OlVua25vd24pKTsKKworICAgIGNvbXBsZXRpb25IYW5kbGVyKGhhbmRs
ZS0+Z2V0U2l6ZShhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSk7Cit9CisKK3ZvaWQgTmV0d29ya1N0
b3JhZ2VNYW5hZ2VyOjp0cnVuY2F0ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50NjRfdCBhY2Nlc3NIYW5kbGVJZGVudGlm
aWVyLCB1aW50NjRfdCBzaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIEFT
U0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgYXV0byBoYW5kbGUgPSBtX2ZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnktPmdldEhhbmRsZShpZGVudGlmaWVyKTsKKyAgICBpZiAo
IWhhbmRsZSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKEZpbGVTeXN0ZW1TdG9y
YWdlRXJyb3I6OlVua25vd24pOworCisgICAgY29tcGxldGlvbkhhbmRsZXIoaGFuZGxlLT50cnVu
Y2F0ZShhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBzaXplKSk7Cit9CisKK3ZvaWQgTmV0d29ya1N0
b3JhZ2VNYW5hZ2VyOjpmbHVzaEZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50NjRfdCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVy
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNN
YWluKCkpOworCisgICAgYXV0byBoYW5kbGUgPSBtX2ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVn
aXN0cnktPmdldEhhbmRsZShpZGVudGlmaWVyKTsKKyAgICBpZiAoIWhhbmRsZSkKKyAgICAgICAg
cmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24p
OworCisgICAgY29tcGxldGlvbkhhbmRsZXIoaGFuZGxlLT5mbHVzaChhY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyKSk7Cit9CisKK3ZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpjbG9zZUFjY2Vzc0hh
bmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50
NjRfdCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6
b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
eworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgYXV0byBoYW5kbGUgPSBt
X2ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnktPmdldEhhbmRsZShpZGVudGlmaWVyKTsK
KyAgICBpZiAoIWhhbmRsZSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKEZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24pOworCisgICAgY29tcGxldGlvbkhhbmRsZXIoaGFu
ZGxlLT5jbG9zZShhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3Jh
Z2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgKaW5kZXggMWI4MTBkZjc4ZDczZDJmZjA5
ZTg0ZGUyY2NiMjJiYTA2MTgwMTFjOC4uNTJjMzExYWFmMGRhZjJlYmY2ZTdjZTUxZDYwMDJjNGZk
ZTE3NzljYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdl
L05ldHdvcmtTdG9yYWdlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaApAQCAtNjksNiArNjksMTEgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGdldERpcmVjdG9yeUhhbmRsZShJUEM6OkNvbm5lY3Rpb24mLCBXZWJD
b3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgU3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVh
dGVJZk5lY2Vzc2FyeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsK
ICAgICB2b2lkIHJlbW92ZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHksIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwog
ICAgIHZvaWQgcmVzb2x2ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2Vi
Q29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
RXhwZWN0ZWQ8VmVjdG9yPFN0cmluZz4sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7Cisg
ICAgdm9pZCBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPHVpbnQ2NF90LCBGaWxl
U3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOworICAgIHZvaWQgZ2V0U2l6ZUZvckFjY2Vzc0hhbmRs
ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3QgYWNjZXNzSGFu
ZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDx1aW50NjRfdCwg
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKKyAgICB2b2lkIHRydW5jYXRlRm9yQWNjZXNz
SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBhY2Nl
c3NIYW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKKyAgICB2b2lkIGZs
dXNoRm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCB1
aW50NjRfdCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0
ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKKyAgICB2b2lkIGNsb3Nl
QWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCB1aW50NjRf
dCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0
aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKIAogICAgIFBBTDo6U2Vzc2lvbklE
IG1fc2Vzc2lvbklEOwogICAgIFJlZjxXb3JrUXVldWU+IG1fcXVldWU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2Vy
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdv
cmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCA2MmU3NDAzY2JiNzAwYWQ5NmJiZWJl
MGZlYjgyMDVjODE2MjI0ZmY3Li5jYzg3MzVkM2Y0NGVhNzk2ZjQwYWQzNTYzNzM0YTgzNzQ3NjIy
NWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0
d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTMy
LDQgKzMyLDEwIEBACiAgICAgR2V0RGlyZWN0b3J5SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0cmluZyBuYW1lLCBib29sIGNyZWF0ZUlmTmVj
ZXNzYXJ5KSAtPiAoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIs
IFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYyBXYW50c0Nvbm5l
Y3Rpb24KICAgICBSZW1vdmVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBTdHJpbmcgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSkgLT4gKHN0
ZDo6b3B0aW9uYWw8V2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5j
CiAgICAgUmVzb2x2ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlm
aWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciB0YXJnZXRJZGVudGlmaWVy
KSAtPiAoRXhwZWN0ZWQ8VmVjdG9yPFN0cmluZz4sIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcj4gcmVzdWx0KSBBc3luYworCisgICAgQ3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8dWlu
dDY0X3QsIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYworICAg
IEdldFNpemVGb3JBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgdWludDY0X3QgYWNjZXNzSGFuZGxlSWRlbnRpZmllcikgLT4gKEV4cGVj
dGVkPHVpbnQ2NF90LCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5
bmMKKyAgICBUcnVuY2F0ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50NjRfdCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1
aW50NjRfdCBzaXplKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I+IHJlc3VsdCkgQXN5bmMKKyAgICBGbHVzaEZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50NjRfdCBhY2Nlc3NIYW5k
bGVJZGVudGlmaWVyKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I+IHJlc3VsdCkgQXN5bmMKKyAgICBDbG9zZUFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50NjRfdCBhY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I+IHJlc3VsdCkgQXN5bmMKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5jcHAKaW5kZXggYjA1NGM5MjM4YmRkMmZjZWM4MTI5YjAzMDZiNTNiYmZiMWM3
ZGY5My4uYTVhYzE3YjBkMjNlNTAzYzhiMDMyNGE5YTYzMTdhOTY2YTI3MTk0ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAgLTk0LDcgKzk0
LDcgQEAgdm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldERpcmVjdG9yeUhh
bmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGwKICAgICB9KTsKIH0KIAotdm9pZCBXZWJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnJlbW92ZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxl
dGVSZWN1cnNpdmVseSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpSZW1v
dmVFbnRyeUNhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYkZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6cmVtb3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vy
c2l2ZWx5LCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFj
ayYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmICghbV9jb25uZWN0aW9uKQogICAgICAg
ICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6
VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0IiB9KTsKQEAgLTEyMCw0ICsxMjAsNjkg
QEAgdm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnJlc29sdmUoV2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIKICAgICB9KTsKIH0KIAordm9pZCBXZWJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpJbnRlZ2VyQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAo
IW1fY29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6
OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5lY3Rpb24gaXMgbG9zdCIg
fSk7CisKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0
d29ya1N0b3JhZ2VNYW5hZ2VyOjpDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKGlkZW50aWZpZXIpLCBb
Y29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byByZXN1
bHQpIG11dGFibGUgeworICAgICAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgICAgIHJldHVybiBj
b21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBjb252ZXJ0VG9FeGNlcHRpb25D
b2RlKHJlc3VsdC5lcnJvcigpKSB9KTsKKworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihyZXN1
bHQudmFsdWUoKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpnZXRTaXplKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVp
bnQ2NF90IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEludGVnZXJDYWxsYmFjayYmIGNvbXBsZXRp
b25IYW5kbGVyKQoreworICAgIGlmICghbV9jb25uZWN0aW9uKQorICAgICAgICByZXR1cm4gY29t
cGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9y
LCAiQ29ubmVjdGlvbiBpcyBsb3N0IiB9KTsKKworICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhB
c3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OkdldFNpemVGb3JBY2Nl
c3NIYW5kbGUoaWRlbnRpZmllciwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciksIFtjb21wbGV0aW9u
SGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIHJlc3VsdCkgbXV0YWJs
ZSB7CisgICAgICAgIGlmICghcmVzdWx0KQorICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25I
YW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IGNvbnZlcnRUb0V4Y2VwdGlvbkNvZGUocmVzdWx0
LmVycm9yKCkpIH0pOworCisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHJlc3VsdC52YWx1ZSgp
KTsKKyAgICB9KTsKK30KKwordm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnRy
dW5jYXRlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IGFj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIsIHVpbnQ2NF90IHNpemUsIFZvaWRDYWxsYmFjayYmIGNvbXBs
ZXRpb25IYW5kbGVyKQoreworICAgIGlmICghbV9jb25uZWN0aW9uKQorICAgICAgICByZXR1cm4g
Y29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVy
cm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0IiB9KTsKKworICAgIG1fY29ubmVjdGlvbi0+c2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OlRydW5jYXRlRm9y
QWNjZXNzSGFuZGxlKGlkZW50aWZpZXIsIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHNpemUpLCBb
Y29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byBlcnJv
cikgbXV0YWJsZSB7CisgICAgICAgIGlmIChlcnJvcikKKyAgICAgICAgICAgIHJldHVybiBjb21w
bGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBjb252ZXJ0VG9FeGNlcHRpb25Db2Rl
KGVycm9yLnZhbHVlKCkpIH0pOworCisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7Cisg
ICAgfSk7Cit9CisKK3ZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpmbHVzaChG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50NjRfdCBhY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLCBWb2lkQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBp
ZiAoIW1fY29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNv
cmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5lY3Rpb24gaXMgbG9z
dCIgfSk7CisKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpGbHVzaEZvckFjY2Vzc0hhbmRsZShpZGVudGlmaWVyLCBh
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyKSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcildKGF1dG8gZXJyb3IpIG11dGFibGUgeworICAgICAgICBpZiAoZXJyb3Ip
CisgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9u
IHsgY29udmVydFRvRXhjZXB0aW9uQ29kZShlcnJvci52YWx1ZSgpKSB9KTsKKworICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcih7IH0pOworICAgIH0pOworfQorCit2b2lkIFdlYkZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6Y2xvc2UoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRp
ZmllciwgdWludDY0X3QgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgVm9pZENhbGxiYWNrJiYgY29t
cGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVy
biBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpVbmtub3du
RXJyb3IsICJDb25uZWN0aW9uIGlzIGxvc3QiIH0pOworCisgICAgbV9jb25uZWN0aW9uLT5zZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Q2xvc2VBY2Nl
c3NIYW5kbGUoaWRlbnRpZmllciwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciksIFtjb21wbGV0aW9u
SGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIGVycm9yKSBtdXRhYmxl
IHsKKyAgICAgICAgaWYgKGVycm9yKQorICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5k
bGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IGNvbnZlcnRUb0V4Y2VwdGlvbkNvZGUoZXJyb3IudmFs
dWUoKSkgfSk7CisKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKKyAgICB9KTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uLmgKaW5kZXggYjYwMWJlNjQzNTNkYWZjNzc3YzZiY2U0MmIxZTlmMjkxMzky
MzBjMi4uYWVjY2EyMWY5ZGU5MWY2Y2Q1YjMxNGYwZDg4YzBlN2E5ODc0MTNlOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaApAQCAtNTEsOSArNTEsMTUg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGlzU2FtZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29y
ZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpTYW1lRW50cnlDYWxsYmFjayYmKTsKICAg
ICB2b2lkIGdldEZpbGVIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgV2ViQ29yZTo6Rmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRIYW5kbGVDYWxsYmFjayYmKTsKICAgICB2b2lk
IGdldERpcmVjdG9yeUhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBXZWJDb3JlOjpGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhhbmRsZUNhbGxiYWNrJiYpOwotICAgIHZvaWQg
cmVtb3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpSZW1vdmVFbnRyeUNhbGxiYWNrJiYpOworICAgIHZvaWQgcmVtb3Zl
RW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
bmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJik7CiAgICAgdm9pZCByZXNvbHZlKFdlYkNvcmU6OkZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpSZXNvbHZlQ2FsbGJh
Y2smJik7CiAKKyAgICB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6SW50ZWdl
ckNhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgZ2V0U2l6ZShGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgdWludDY0X3QgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpJbnRlZ2VyQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9p
ZCB0cnVuY2F0ZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3QgYWNjZXNzSGFu
ZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBmbHVzaChGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3QgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV2Vi
Q29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJikgZmluYWw7
CisgICAgdm9pZCBjbG9zZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3QgYWNj
ZXNzSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OjpWb2lkQ2FsbGJhY2smJikgZmluYWw7CisKICAgICBSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiBt
X2Nvbm5lY3Rpb247CiB9OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOTAxYzE3MjA1OWQ5ZDI4YTI4MzQ5NjRkNjgwZjgy
MjJjNGZlNjBiNi4uOGFmNzFkM2M2MTg5ZDhjYTIyOTAzNWYwZmFiMTAxY2ZhZTdjMWY2YyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTEwLTA0ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBw
bGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMx
MTg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBz
dG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3MvcmVzb3VyY2VzL3N5bmMtYWNjZXNzLWhhbmRsZS1iYXNp
Y3MuanM6IEFkZGVkLgorICAgICAgICAoZmluaXNoVGVzdCk6CisgICAgICAgIChnZXREaXJlY3Rv
cnkpOgorICAgICAgICAqIHN0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5k
bGUtYmFzaWNzLXdvcmtlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2Uv
ZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtYmFzaWNzLXdvcmtlci5odG1sOiBB
ZGRlZC4KKwogMjAyMS0xMC0wMyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNv
bT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjgzMzM1KTogcnViYmVyLWJhbmRpbmcgbm8gbG9u
Z2VyIGxvY2tzIHRvIGFuIGF4aXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IGM4
NTJhNzQ4NjEzNTZkZGZkYWE0YWYwMjNmZDc5YjgxNjNhN2E4NGEuLjEyYjMzZWRkNDgyNGUyM2Rm
OWFhOTZkZWIyMmIzNjhiZTJhMTlkZmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEyIEBACisyMDIxLTEwLTA0ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUu
Y29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMTg1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvZmlsZS1zeXN0ZW0tYWNjZXNzL3NhbmRib3hlZF9GaWxlU3lzdGVtRmls
ZUhhbmRsZS1zeW5jLWFjY2Vzcy1oYW5kbGUtbG9jay5odHRwcy50ZW50YXRpdmUud29ya2VyLWV4
cGVjdGVkLnR4dDoKKwogMjAyMS0xMC0wMiAgTmlrb3MgTW91Y2h0YXJpcyAgPG5tb3VjaHRhcmlz
QGFwcGxlLmNvbT4KIAogICAgICAgICBXUFRzIGZvciBoeXBvdCxzcXJ0LHBvdyBjYWxjIGZ1bmN0
aW9ucwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9maWxlLXN5c3RlbS1hY2Nlc3Mvc2FuZGJveGVkX0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLXN5
bmMtYWNjZXNzLWhhbmRsZS1sb2NrLmh0dHBzLnRlbnRhdGl2ZS53b3JrZXItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9maWxlLXN5c3Rl
bS1hY2Nlc3Mvc2FuZGJveGVkX0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLXN5bmMtYWNjZXNzLWhhbmRs
ZS1sb2NrLmh0dHBzLnRlbnRhdGl2ZS53b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IGI0NjI4YTdk
ZjIyZGZlODhhN2IzNzEyZmZiMzY3ZGZjY2VlZTg3MDQuLjdkYWRjMmQ0ZjA2ZDg0NGEyMTJmNjQw
NGMwZDFhYjlmNTYzNzBjYjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmlsZS1zeXN0ZW0tYWNjZXNzL3NhbmRib3hlZF9GaWxlU3lzdGVt
RmlsZUhhbmRsZS1zeW5jLWFjY2Vzcy1oYW5kbGUtbG9jay5odHRwcy50ZW50YXRpdmUud29ya2Vy
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZpbGUtc3lzdGVtLWFjY2Vzcy9zYW5kYm94ZWRfRmlsZVN5c3RlbUZpbGVIYW5kbGUt
c3luYy1hY2Nlc3MtaGFuZGxlLWxvY2suaHR0cHMudGVudGF0aXZlLndvcmtlci1leHBlY3RlZC50
eHQKQEAgLTEsNCArMSw0IEBACiAKLUZBSUwgVGhlcmUgY2FuIG9ubHkgYmUgb25lIG9wZW4gYWNj
ZXNzIGhhbmRsZSBhdCBhbnkgZ2l2ZW4gdGltZSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWpl
Y3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IGZpbGVIYW5kbGUuY3JlYXRlU3lu
Y0FjY2Vzc0hhbmRsZSBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdmaWxlSGFuZGxlLmNyZWF0ZVN5
bmNBY2Nlc3NIYW5kbGUoKScsICdmaWxlSGFuZGxlLmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUnIGlz
IHVuZGVmaW5lZCkiCi1GQUlMIEFuIGFjY2VzcyBoYW5kbGUgZnJvbSBvbmUgZmlsZSBkb2VzIG5v
dCBpbnRlcmZlcmUgd2l0aCB0aGUgY3JlYXRpb24gb2YgYW4gYWNjZXNzIGhhbmRsZSBvbiBhbm90
aGVyIGZpbGUgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9i
amVjdCAiVHlwZUVycm9yOiBmb29GaWxlSGFuZGxlLmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUgaXMg
bm90IGEgZnVuY3Rpb24uIChJbiAnZm9vRmlsZUhhbmRsZS5jcmVhdGVTeW5jQWNjZXNzSGFuZGxl
KCknLCAnZm9vRmlsZUhhbmRsZS5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlJyBpcyB1bmRlZmluZWQp
IgorUEFTUyBUaGVyZSBjYW4gb25seSBiZSBvbmUgb3BlbiBhY2Nlc3MgaGFuZGxlIGF0IGFueSBn
aXZlbiB0aW1lCitQQVNTIEFuIGFjY2VzcyBoYW5kbGUgZnJvbSBvbmUgZmlsZSBkb2VzIG5vdCBp
bnRlcmZlcmUgd2l0aCB0aGUgY3JlYXRpb24gb2YgYW4gYWNjZXNzIGhhbmRsZSBvbiBhbm90aGVy
IGZpbGUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNz
L3Jlc291cmNlcy9zeW5jLWFjY2Vzcy1oYW5kbGUtYmFzaWNzLmpzIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9maWxlc3lzdGVtYWNjZXNzL3Jlc291cmNlcy9zeW5jLWFjY2Vzcy1oYW5kbGUtYmFzaWNz
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjk2NzEyNWE0NmRjNmI2ZWMzZmNmZWYxMzk0YTg2MDhjODY1Mjg3MmMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mv
cmVzb3VyY2VzL3N5bmMtYWNjZXNzLWhhbmRsZS1iYXNpY3MuanMKQEAgLTAsMCArMSw4MSBAQAor
aWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgeworICAgIGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LmpzJyk7Cit9CisKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tz
IGJhc2ljIGZ1bnRpb25hbGl0aWVzIG9mIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLiIpOwor
Cit2YXIgcm9vdEhhbmRsZSwgZmlsZUhhbmRsZSwgYWNjZXNzSGFuZGxlMSwgYWNjZXNzSGFuZGxl
MiwgY3JlYXRlRXJyb3I7CisKK2Z1bmN0aW9uIGZpbmlzaFRlc3QoZXJyb3IpCit7CisgICAgaWYg
KGVycm9yKSB7CisgICAgICAgIHRlc3RGYWlsZWQoZXJyb3IpOworICAgIH0KKyAgICBmaW5pc2hK
U1Rlc3QoKTsKK30KKworZnVuY3Rpb24gZ2V0RGlyZWN0b3J5KCkgeworICAgIG5hdmlnYXRvci5z
dG9yYWdlLmdldERpcmVjdG9yeSgpLnRoZW4oKGhhbmRsZSkgPT4geworICAgICAgICByb290SGFu
ZGxlID0gaGFuZGxlOworICAgICAgICBjcmVhdGVGaWxlSGFuZGxlKHJvb3RIYW5kbGUpOworICAg
IH0pLmNhdGNoKChlcnJvcikgPT4geworICAgICAgICBmaW5pc2hUZXN0KGVycm9yKTsKKyAgICB9
KTsKK30KKworZnVuY3Rpb24gY3JlYXRlRmlsZUhhbmRsZShmcm9tSGFuZGxlKSB7CisgICAgZnJv
bUhhbmRsZS5nZXRGaWxlSGFuZGxlKCJzeW5jLWFjY2Vzcy1oYW5kbGUudHh0IiwgeyAiY3JlYXRl
IiA6IHRydWUgfSkudGhlbigoaGFuZGxlKSA9PiB7CisgICAgICAgIGZpbGVIYW5kbGUgPSBoYW5k
bGU7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZmlsZUhhbmRsZS5uYW1lIiwgInN5
bmMtYWNjZXNzLWhhbmRsZS50eHQiKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJm
aWxlSGFuZGxlLmtpbmQiLCAiZmlsZSIpOworICAgICAgICBjcmVhdGVTeW5jQWNjZXNzSGFuZGxl
KGZpbGVIYW5kbGUpOworICAgIH0pLmNhdGNoKChlcnJvcikgPT4geworICAgICAgICBmaW5pc2hU
ZXN0KGVycm9yKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gY3JlYXRlU3luY0FjY2Vzc0hhbmRs
ZShmcm9tSGFuZGxlKSB7CisgICAgZnJvbUhhbmRsZS5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlKCku
dGhlbigoaGFuZGxlKSA9PiB7CisgICAgICAgIGFjY2Vzc0hhbmRsZTEgPSBoYW5kbGU7CisgICAg
ICAgIGRlYnVnKCJhY2Nlc3NIYW5kbGUxIGlzIGNyZWF0ZWQiKTsKKyAgICAgICAgZ2V0U2l6ZShh
Y2Nlc3NIYW5kbGUxKTsKKyAgICB9KS5jYXRjaCgoZXJyb3IpID0+IHsKKyAgICAgICAgZmluaXNo
VGVzdChlcnJvcik7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIGdldFNpemUoYWNjZXNzSGFuZGxl
KSB7CisgICAgYWNjZXNzSGFuZGxlLmdldFNpemUoKS50aGVuKChyZXN1bHQpID0+IHsKKyAgICAg
ICAgc2l6ZSA9IHJlc3VsdDsKKyAgICAgICAgc2hvdWxkQmUoInNpemUiLCAiMCIpOworICAgICAg
ICBjcmVhdGVTZWNvbmRTeW5jQWNlc3NIYW5kbGUoZmlsZUhhbmRsZSk7CisgICAgfSkuY2F0Y2go
KGVycm9yKSA9PiB7CisgICAgICAgIGZpbmlzaFRlc3QoZXJyb3IpOworICAgIH0pOworfQorCitm
dW5jdGlvbiBjcmVhdGVTZWNvbmRTeW5jQWNlc3NIYW5kbGUoZnJvbUhhbmRsZSkgeworICAgIGZy
b21IYW5kbGUuY3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpLnRoZW4oKGhhbmRsZSkgPT4geworICAg
ICAgICBhY2Nlc3NIYW5kbGUyID0gaGFuZGxlOworICAgICAgICAvLyBTZWNvbmQgY3JlYXRpb24g
c2hvdWxkIHN1Y2NlZWQuCisgICAgICAgIGRlYnVnKCJhY2Nlc3NIYW5kbGUyIGlzIGNyZWF0ZWQi
KTsKKyAgICAgICAgZmluaXNoVGVzdCgpOworICAgIH0pLmNhdGNoKChlcnJvcikgPT4geworICAg
ICAgICAvLyBGaXJzdCBjcmVhdGlvbiBzaG91bGQgZmFpbCBhcyB0aGVyZSBpcyBhbiBhY3RpdmUg
aGFuZGxlLgorICAgICAgICBjcmVhdGVFcnJvciA9IGVycm9yOworICAgICAgICBkZWJ1ZygiYWNj
ZXNzSGFuZGxlMiBjYW5ub3QgYmUgY3JlYXRlZCIpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoImNyZWF0ZUVycm9yLnRvU3RyaW5nKCkiLCAiSW52YWxpZFN0YXRlRXJyb3I6IFRoZSBv
YmplY3QgaXMgaW4gYW4gaW52YWxpZCBzdGF0ZS4iKTsKKyAgICAgICAgY2xvc2UoKTsKKyAgICB9
KTsKK30KKworZnVuY3Rpb24gY2xvc2UoKSB7CisgICAgYWNjZXNzSGFuZGxlMS5jbG9zZSgpLnRo
ZW4oKHJlc3VsdCkgPT4geworICAgICAgICBkZWJ1ZygiYWNjZXNzSGFuZGxlMSBpcyBjbG9zZWQi
KTsKKyAgICAgICAgY3JlYXRlU2Vjb25kU3luY0FjZXNzSGFuZGxlKGZpbGVIYW5kbGUpOworICAg
IH0pLmNhdGNoKChlcnJvcikgPT4geworICAgICAgICBmaW5pc2hUZXN0KGVycm9yKTsKKyAgICB9
KTsKK30KKworZ2V0RGlyZWN0b3J5KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLWJhc2ljcy13b3JrZXItZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNz
LWhhbmRsZS1iYXNpY3Mtd29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NzZiNjI2MmEy
NTE1YTY5MzY1NjllMjMyYWE2YWIyZTYwNWI1ODUyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1iYXNpY3Mt
d29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK1N0YXJ0aW5nIHdvcmtlcjogcmVz
b3VyY2VzL3N5bmMtYWNjZXNzLWhhbmRsZS1iYXNpY3MuanMKK0dvdCBlcnJvciBmcm9tIHdvcmtl
cjogdW5kZWZpbmVkCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNz
L3N5bmMtYWNjZXNzLWhhbmRsZS1iYXNpY3Mtd29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLWJhc2ljcy13b3JrZXIuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43ZmVjMzZhNTk2MGI0YWFhMjFhMmY4MGFkMTFjZWQ0YjdlY2VkOWQ1Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5
bmMtYWNjZXNzLWhhbmRsZS1iYXNpY3Mtd29ya2VyLmh0bWwKQEAgLTAsMCArMSw5IEBACis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK3dvcmtlciA9IHN0YXJ0V29ya2VyKCdy
ZXNvdXJjZXMvc3luYy1hY2Nlc3MtaGFuZGxlLWJhc2ljcy5qcycpOzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440193</attachid>
            <date>2021-10-05 03:33:11 -0700</date>
            <delta_ts>2021-10-05 09:33:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231185-20211005033310.patch</filename>
            <type>text/plain</type>
            <size>96693</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDZkZDE4NzQwMTRhN2E1N2JhZjZjZWFm
MGZmMGIyZGNiNTUxZTEzNjIuLmIzZmQ5NTJmZmQ3ZjViY2E3ZDUwOGNiMmNhMGM5YWQ4ZmE5NWZj
ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEtMTAtMDUgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzExODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzODQ3ODU5PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNl
cy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sOgorICAgICAgICAqIHd0Zi9GaWxlU3lz
dGVtLmg6CisgICAgICAgICogd3RmL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3BwOgorICAgICAgICAo
V1RGOjpGaWxlU3lzdGVtSW1wbDo6Zmx1c2hGaWxlKToKKyAgICAgICAgKiB3dGYvcG9zaXgvRmls
ZVN5c3RlbVBPU0lYLmNwcDoKKyAgICAgICAgKFdURjo6RmlsZVN5c3RlbUltcGw6OmZsdXNoRmls
ZSk6CisgICAgICAgICogd3RmL3dpbi9GaWxlU3lzdGVtV2luLmNwcDoKKyAgICAgICAgKFdURjo6
RmlsZVN5c3RlbUltcGw6OmZsdXNoRmlsZSk6CisKIDIwMjEtMTAtMDQgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgU1BJIHRvIGxhdW5jaCBhIHNlcnZpY2Ug
c2VydmljZSB3b3JrZXIgaW4gYSBXS1dlYlZpZXcgYW5kIGV4cG9zZSBzZXJ2aWNlIHdvcmtlciB0
byBpbmplY3RlZCBidW5kbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5NDU3YzRlMjAxOGM0YTBhYmU2ODg3MmJl
NGYxMTM1MGQxNDllMDJmLi44ZDdjMWQ4N2I2NjFhZTA1NmY1NzFhZTUzMDAxNjVkOWI2MzZlN2Iw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTkgQEAKKzIwMjEtMTAtMDUgIFNpaHVpIExpdSAgPHNp
aHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzExODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzODQ3ODU5PgorCisgICAg
ICAgIEltcGxlbWVudCBiYXNpYyBzdXBwb3J0IGZvciBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZSBhcyBwcm9wb3NhbDoKKyAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL1dJQ0cvZmlsZS1zeXN0
ZW0tYWNjZXNzL2Jsb2IvbWFpbi9BY2Nlc3NIYW5kbGUubWQKKworICAgICAgICBGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZSBjYW4gYmUgY3JlYXRlZCB2aWEgRmlsZVN5c3RlbUZpbGVIYW5kbGUs
IGFuZCBpdCBjb21tdWljYXRlcyB3aXRoIGJhY2tlbmQgdmlhIAorICAgICAgICBGaWxlU3lzdGVt
RmlsZUhhbmRsZS4KKworICAgICAgICBUZXN0OiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3lu
Yy1hY2Nlc3MtaGFuZGxlLWJhc2ljcy13b3JrZXIuaHRtbAorCisgICAgICAgICogRGVyaXZlZFNv
dXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQu
eGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEhl
YWRlcnMuY21ha2U6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1GaWxlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxl
OjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1G
aWxlSGFuZGxlOjpnZXRTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFu
ZGxlOjp0cnVuY2F0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZTo6
Zmx1c2gpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNsb3NlKToK
KyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUu
aDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5k
bGUuaWRsOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjp+RmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU6OnRydW5jYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlOjpnZXRTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlOjpmbHVzaCk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZTo6Y2xvc2UpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGU6OmRpZENsb3NlKToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbDogQWRkZWQuCisgICAgICAg
ICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRl
bnRpZmllci5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29y
a2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldv
cmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6c2NvcGVDbG9zZWQpOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpyZW1vdmVFbnRyeSk6
CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmRp
ZENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjb21wbGV0ZUludGVnZXJDYWxsYmFjayk6CisgICAgICAg
IChXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNvbXBsZXRlVm9p
ZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3Jr
ZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldFNpemUpOgorICAgICAgICAoV2ViQ29y
ZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjp0cnVuY2F0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmZsdXNoKToKKyAg
ICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y2xvc2Up
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpk
aWRSZW1vdmVFbnRyeSk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFNvdXJj
ZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6CisKIDIwMjEtMTAtMDQg
IE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBTdG9w
IHBhcnNpbmcgY29udGV4dC1zZW5zaXRpdmUgY29sb3JzIGluIG92ZXJyaWRlLWNvbG9yCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IGY4NWRmM2YwYWUzYjlmMGM2M2FhN2M5MTNlODI2MjcyZmE1ZmEzZTMuLjJhNjc5Yjhi
NmRiYTM1ZDkyNWVkYzVjMDJiMmE5MWE0OWUzMDg5NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTMg
QEAKKzIwMjEtMTAtMDUgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAg
ICAgQWRkIHN1cHBvcnQgZm9yIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzExODUKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzgzODQ3ODU5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEN1cnJlbnRseSB3ZSBvbmx5IGFsbG93IG9uZSBvcGVuIGFjY2VzcyBo
YW5kbGUgb24gb25lIGZpbGUuIFNlY29uZCBhY2Nlc3MgaGFuZGxlIGNhbiBiZSBjcmVhdGVkIGFm
dGVyIHRoZSBmaXJzdAorICAgICAgICBpcyBjbG9zZWQuCisKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaDoKKyAgICAgICAgKFdlYktpdDo6
Y29udmVydFRvRXhjZXB0aW9uT3IpOgorICAgICAgICAoV2ViS2l0Ojpjb252ZXJ0VG9FeGNlcHRp
b25Db2RlKTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3Jh
Z2VIYW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpGaWxl
U3lzdGVtU3RvcmFnZUhhbmRsZTo6Z2V0U2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlOjp0cnVuY2F0ZSk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0ZW1T
dG9yYWdlSGFuZGxlOjpmbHVzaCk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdl
SGFuZGxlOjpjbG9zZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmls
ZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0
b3JhZ2VNYW5hZ2VyOjpjb25uZWN0aW9uQ2xvc2VkKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5
c3RlbVN0b3JhZ2VNYW5hZ2VyOjphY3F1aXJlTG9ja0ZvckZpbGUpOgorICAgICAgICAoV2ViS2l0
OjpGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXI6OnJlbGVhc2VMb2NrRm9yRmlsZSk6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHA6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Y3JlYXRlU3luY0FjY2Vz
c0hhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Z2V0U2l6
ZUZvckFjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTdG9yYWdlTWFuYWdl
cjo6dHJ1bmNhdGVGb3JBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU3Rv
cmFnZU1hbmFnZXI6OmZsdXNoRm9yQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1N0b3JhZ2VNYW5hZ2VyOjpjbG9zZUFjY2Vzc0hhbmRsZSk6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaDoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbjoKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKHR5cGVzX3RoYXRf
Y2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpnZXRGaWxlSGFuZGxlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpnZXREaXJlY3Rv
cnlIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b246OnJlbW92ZUVudHJ5KToKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOjpyZXNvbHZlKToKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpnZXRTaXplKToKKyAgICAgICAgKFdlYktp
dDo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjp0cnVuY2F0ZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Zmx1c2gpOgorICAgICAgICAo
V2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNsb3NlKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3RvcmFnZUNvbm5l
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTdG9yYWdlQ29ubmVjdGlvbjo6ZmlsZVN5
c3RlbUdldERpcmVjdG9yeSk6CisKIDIwMjEtMTAtMDQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KIAogICAgICAgICBBZGQgU1BJIHRvIGxhdW5jaCBhIHNlcnZpY2Ugc2VydmljZSB3
b3JrZXIgaW4gYSBXS1dlYlZpZXcgYW5kIGV4cG9zZSBzZXJ2aWNlIHdvcmtlciB0byBpbmplY3Rl
ZCBidW5kbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQ
cmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVu
Y2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKaW5kZXggMTE2ZjdkOTNhZTY3MDMx
MzkzOGFhMDAzZGNlMjIwN2FiNjY2YmEzMC4uNTRhNDk2OTliMGQ2OTFlNDJkYmE0ZWI1NjRiYjQx
MDgwYzU5YjBlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dl
YlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL1By
ZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKQEAgLTI2LDYgKzI2LDE4
IEBACiAjIFRoZXkgbXVzdCBpbmNsdWRlIGEgaHVtYW5SZWFkYWJsZU5hbWUgYW5kIGh1bWFuUmVh
ZGFibGVEZXNjcmlwdGlvbi4gVGhpcyBpcwogIyAgIHRoZSB0ZXh0IGV4cG9zZWQgdG8gdGhlIHVz
ZXIgZnJvbSB0aGUgV2ViS2l0IGNsaWVudC4KIAorQWNjZXNzSGFuZGxlRW5hYmxlZDoKKyAgdHlw
ZTogYm9vbAorICBodW1hblJlYWRhYmxlTmFtZTogIkFjY2Vzc0hhbmRsZSBBUEkiCisgIGh1bWFu
UmVhZGFibGVEZXNjcmlwdGlvbjogIkVuYWJsZSBBY2Nlc3NIYW5kbGUgQVBJIgorICBkZWZhdWx0
VmFsdWU6CisgICAgV2ViS2l0TGVnYWN5OgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAgICBXZWJL
aXQ6CisgICAgICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYkNvcmU6CisgICAgICBkZWZhdWx0OiBm
YWxzZQorCiBBY2Nlc3NpYmlsaXR5T2JqZWN0TW9kZWxFbmFibGVkOgogICB0eXBlOiBib29sCiAg
IGh1bWFuUmVhZGFibGVOYW1lOiAiQWNjZXNzaWJpbGl0eSBPYmplY3QgTW9kZWwiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9GaWxlU3lzdGVtLmggYi9Tb3VyY2UvV1RGL3d0Zi9GaWxlU3lz
dGVtLmgKaW5kZXggYzQ1MDFkMTRhNzQyYWEyMWZhNmRjN2E3M2Y4MzA5ZWM2YTg3ZjRkNS4uYjEw
NzM3MDY5OGUxYWQxZGE3OTRhN2U0NjZjYzAwNzEyYTdkODY2NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvRmlsZVN5c3RlbS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uaApA
QCAtMTU0LDYgKzE1NCw3IEBAIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGNsb3NlRmlsZShQbGF0
Zm9ybUZpbGVIYW5kbGUmKTsKIC8vIFJldHVybnMgdGhlIHJlc3VsdGluZyBvZmZzZXQgZnJvbSB0
aGUgYmVnaW5uaW5nIG9mIHRoZSBmaWxlIGlmIHN1Y2Nlc3NmdWwsIC0xIG90aGVyd2lzZS4KIFdU
Rl9FWFBPUlRfUFJJVkFURSBsb25nIGxvbmcgc2Vla0ZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlLCBs
b25nIGxvbmcgb2Zmc2V0LCBGaWxlU2Vla09yaWdpbik7CiBXVEZfRVhQT1JUX1BSSVZBVEUgYm9v
bCB0cnVuY2F0ZUZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlLCBsb25nIGxvbmcgb2Zmc2V0KTsKK1dU
Rl9FWFBPUlRfUFJJVkFURSBib29sIGZsdXNoRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUpOwogLy8g
UmV0dXJucyBudW1iZXIgb2YgYnl0ZXMgYWN0dWFsbHkgcmVhZCBpZiBzdWNjZXNzZnVsLCAtMSBv
dGhlcndpc2UuCiBXVEZfRVhQT1JUX1BSSVZBVEUgaW50IHdyaXRlVG9GaWxlKFBsYXRmb3JtRmls
ZUhhbmRsZSwgY29uc3Qgdm9pZCogZGF0YSwgaW50IGxlbmd0aCk7CiAvLyBSZXR1cm5zIG51bWJl
ciBvZiBieXRlcyBhY3R1YWxseSB3cml0dGVuIGlmIHN1Y2Nlc3NmdWwsIC0xIG90aGVyd2lzZS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3BwIGIvU291
cmNlL1dURi93dGYvZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAKaW5kZXggNTQ2MjQ0YzcwNDEwODRj
YjRiNDJlOWYwYWFlYmE4YTI2MjkwM2ZkMy4uZjgxMjdmMGJhMGY0NGU0OWVmMjg1OWUxNTE4MDA4
YzFiMzA0ODQxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvZ2xpYi9GaWxlU3lzdGVtR2xp
Yi5jcHAKKysrIGIvU291cmNlL1dURi93dGYvZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAKQEAgLTIx
Myw2ICsyMTMsMTEgQEAgYm9vbCB0cnVuY2F0ZUZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRs
ZSwgbG9uZyBsb25nIG9mZnNldCkKICAgICByZXR1cm4gZ19zZWVrYWJsZV90cnVuY2F0ZShHX1NF
RUtBQkxFKGdfaW9fc3RyZWFtX2dldF9vdXRwdXRfc3RyZWFtKEdfSU9fU1RSRUFNKGhhbmRsZSkp
KSwgb2Zmc2V0LCBudWxscHRyLCBudWxscHRyKTsKIH0KIAorYm9vbCBmbHVzaEZpbGUoUGxhdGZv
cm1GaWxlSGFuZGxlIGhhbmRsZSkKK3sKKyAgICByZXR1cm4gZ19vdXRwdXRfc3RyZWFtX2ZsdXNo
KGdfaW9fc3RyZWFtX2dldF9vdXRwdXRfc3RyZWFtKEdfSU9fU1RSRUFNKGhhbmRsZSkpLCBudWxs
cHRyLCBudWxscHRyKTsKK30KKwogaW50IHdyaXRlVG9GaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSBo
YW5kbGUsIGNvbnN0IHZvaWQqIGRhdGEsIGludCBsZW5ndGgpCiB7CiAgICAgaWYgKCFsZW5ndGgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9wb3NpeC9GaWxlU3lzdGVtUE9TSVguY3BwIGIv
U291cmNlL1dURi93dGYvcG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNwcAppbmRleCBiMTMzODI0ZWMy
YTExNWVhNTBjN2MzNGUwZjFhNWVjZTgwNDAyZDRjLi43OTU2NzBmZDZkODAyNzhkZjZjMTcwYjIx
NjJjNDhiNTJlOWNiYmVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9wb3NpeC9GaWxlU3lz
dGVtUE9TSVguY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5j
cHAKQEAgLTExOCw2ICsxMTgsMTEgQEAgYm9vbCB0cnVuY2F0ZUZpbGUoUGxhdGZvcm1GaWxlSGFu
ZGxlIGhhbmRsZSwgbG9uZyBsb25nIG9mZnNldCkKICAgICByZXR1cm4gIWZ0cnVuY2F0ZShoYW5k
bGUsIG9mZnNldCk7CiB9CiAKK2Jvb2wgZmx1c2hGaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5k
bGUpCit7CisgICAgcmV0dXJuICFmc3luYyhoYW5kbGUpOworfQorCiBpbnQgd3JpdGVUb0ZpbGUo
UGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSwgY29uc3Qgdm9pZCogZGF0YSwgaW50IGxlbmd0aCkK
IHsKICAgICBkbyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi93aW4vRmlsZVN5c3RlbVdp
bi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi93aW4vRmlsZVN5c3RlbVdpbi5jcHAKaW5kZXggZmZhNjI5
M2M3M2U4NGVlZTBiY2UxMmNjNGQwZGE3Y2RjYTYwYjg5My4uMmJjOGYyMDEwNTFjN2Q4NWIxN2I0
NGFjMjczOGQyZWQwMWYyZDk0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvd2luL0ZpbGVT
eXN0ZW1XaW4uY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3dpbi9GaWxlU3lzdGVtV2luLmNwcApA
QCAtMzAzLDYgKzMwMywxMiBAQCBib29sIHRydW5jYXRlRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUg
aGFuZGxlLCBsb25nIGxvbmcgb2Zmc2V0KQogICAgIHJldHVybiBTZXRGaWxlSW5mb3JtYXRpb25C
eUhhbmRsZShoYW5kbGUsIEZpbGVFbmRPZkZpbGVJbmZvLCAmZW9mSW5mbywgc2l6ZW9mKEZJTEVf
RU5EX09GX0ZJTEVfSU5GTykpOwogfQogCitib29sIGZsdXNoRmlsZShQbGF0Zm9ybUZpbGVIYW5k
bGUgaGFuZGxlKQoreworICAgIC8vIE5vdCBpbXBsZW1lbnRlZC4KKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKIGludCB3cml0ZVRvRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlLCBjb25zdCB2
b2lkKiBkYXRhLCBpbnQgbGVuZ3RoKQogewogICAgIGlmICghaXNIYW5kbGVWYWxpZChoYW5kbGUp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5k
ZXggYzBiZTg2YTczNTQ0MjJmMWZiZGEwZWEwYzZhZDM0MTM5OWJlYzkyZS4uZTJlODk2MTkyM2Mw
Yzk5NmIzZmQwODE0Y2M1MDIzYjkyZjYyZjRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0xMjYsNiArMTI2LDcgQEAgJChQUk9KRUNU
X0RJUikvTW9kdWxlcy9mZXRjaC9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlK0ZldGNoLmlkbAog
JChQUk9KRUNUX0RJUikvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3Rv
cnlIYW5kbGUuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbUZpbGVIYW5kbGUuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5pZGwKICQoUFJPSkVDVF9ESVIp
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9TdG9yYWdlTWFuYWdlcitGaWxlU3lzdGVtQWNjZXNz
LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWQuaWRsCiAkKFBST0pF
Q1RfRElSKS9Nb2R1bGVzL2dhbWVwYWQvR2FtZXBhZEJ1dHRvbi5pZGwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggMjExMTJjZTE2NDdk
ZDVkNGM2YWY2NTkxOGJmYjM0MmE0ZGNiY2ViYi4uZjRmNDgyMjhiZGM0NjIzMDE3ZmQ0NDlkMTI2
NDE2NDgwZWU3ZmJhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMt
b3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0
cHV0LnhjZmlsZWxpc3QKQEAgLTkwNyw2ICs5MDcsOCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNGaWxlU3lzdGVtRmlsZUhh
bmRsZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0Zp
bGVTeXN0ZW1IYW5kbGUuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0ZpbGVTeXN0ZW1IYW5kbGUuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGUuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNGaWxsTW9kZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTRmlsbE1vZGUuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNGb2N1c0V2ZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5k
ZXggOTJkM2M0NzE5NjBiY2M3MmU4OTI5MDYzZWFmNWI1N2Q5NzQzYmU1NC4uYmU4YWMyNzI0OThk
ZDI0ZTY4YjY5ZDliZDQyNTcwNDU1ZDk5Y2U1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5t
YWtlCkBAIC0xNTUsNiArMTU1LDcgQEAgSlNfQklORElOR19JRExTIDo9IFwKICAgICAkKFdlYkNv
cmUpL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmlk
bCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZp
bGVIYW5kbGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9G
aWxlU3lzdGVtSGFuZGxlLmlkbCBcCisJJChXZWJDb3JlKS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9TdG9yYWdlTWFuYWdlcitGaWxlU3lzdGVtQWNjZXNzLmlkbCBc
CiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dhbWVwYWQvR2FtZXBhZC5pZGwgXAogICAgICQoV2Vi
Q29yZSkvTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRCdXR0b24uaWRsIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtl
CmluZGV4IDM5NGNiM2JiNmUxYTMyNzI0OTUxYjIyNjU3ZWQ5NTk5ZmQzNzhmODIuLjlhNTljMzBi
OTUyZDIxZTQ2NjQ2ZmU2MThiNWM3NGE2OWU1YWYzN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAt
NDIsNiArNDIsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAg
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaAogICAgIE1vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllci5oCiAgICAgTW9kdWxl
cy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCisgICAgTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKICAgICBN
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvU3RvcmFnZU1hbmFnZXJGaWxlU3lzdGVtQWNjZXNzLmgK
ICAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uLmgKICAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uQ2FsbGJhY2tJZGVudGlmaWVyLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVI
YW5kbGUuY3BwCmluZGV4IGIyMTI1NDdiNWZlOWI5YmQyNTY3ZmIxYjA5NDgwYmJkZDBmMTlmNjcu
LmE2OWE3MmM2YjY4YTJkNmNkNDVjOGZiNzM0NGJhNDNiNTg3MzMxNjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRs
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVT
eXN0ZW1GaWxlSGFuZGxlLmNwcApAQCAtMjcsNyArMjcsOSBAQAogI2luY2x1ZGUgIkZpbGVTeXN0
ZW1GaWxlSGFuZGxlLmgiCiAKICNpbmNsdWRlICJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24u
aCIKKyNpbmNsdWRlICJGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oIgogI2luY2x1ZGUgIkpT
RE9NUHJvbWlzZURlZmVycmVkLmgiCisjaW5jbHVkZSAiSlNGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZS5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTQ5LDUgKzUxLDQxIEBAIHZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6Omdl
dEZpbGUoRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxGaWxlPj4mJiBwcm9tCiAgICAg
cHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IsICJOb3QgaW1wbGVt
ZW50ZWQiX3MgfSk7CiB9CiAKK3ZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNyZWF0ZVN5bmNB
Y2Nlc3NIYW5kbGUoRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZT4+JiYgcHJvbWlzZSkKK3sKKyAgICBjb25uZWN0aW9uKCkuY3JlYXRlU3lu
Y0FjY2Vzc0hhbmRsZShpZGVudGlmaWVyKCksIFtwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMg
fSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAg
ICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBwcm9t
aXNlLnJlamVjdChyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKKworICAgICAgICBwcm9taXNl
LnNldHRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y3JlYXRlKHByb3RlY3RlZFRoaXMu
Z2V0KCksIHJlc3VsdC5yZXR1cm5WYWx1ZSgpKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgRmlsZVN5
c3RlbUZpbGVIYW5kbGU6OmdldFNpemUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIERPTVByb21pc2VEZWZlcnJlZDxJRExVbnNpZ25l
ZExvbmdMb25nPiYmIHByb21pc2UpCit7CisgICAgY29ubmVjdGlvbigpLmdldFNpemUoaWRlbnRp
ZmllcigpLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlz
ZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92
ZShyZXN1bHQpKTsKKyAgICB9KTsKK30KKwordm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6dHJ1
bmNhdGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIsIHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9p
ZD4mJiBwcm9taXNlKQoreworICAgIGNvbm5lY3Rpb24oKS50cnVuY2F0ZShpZGVudGlmaWVyKCks
IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHNpemUsIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNl
KV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgICAgICBwcm9taXNlLnNldHRsZShXVEZNb3Zl
KHJlc3VsdCkpOworICAgIH0pOworfQorCit2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpmbHVz
aChGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRp
ZmllciwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3sKKyAgICBjb25uZWN0
aW9uKCkuZmx1c2goaWRlbnRpZmllcigpLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBbcHJvbWlz
ZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgcHJv
bWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKKyAgICB9KTsKK30KKwordm9pZCBGaWxlU3lz
dGVtRmlsZUhhbmRsZTo6Y2xvc2UoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVy
IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9u
T3I8dm9pZD4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgY29ubmVjdGlvbigpLmNs
b3NlKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhh
bmRsZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1GaWxlSGFuZGxlLmgKaW5kZXggMjUwMDVjMjEzMzhiZTc4NmE5OWYyMGI4ZmFhZGUzYzEyYTdh
ZGNkNS4uYWZjZWExZjcwMTM3OTA4ZmUxYzc0MGUxZmZlZWIxZGU3ODE0NDE1NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxl
SGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1GaWxlSGFuZGxlLmgKQEAgLTI2LDEwICsyNiwxMyBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlICJGaWxlU3lzdGVtSGFuZGxlLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
RmlsZTsKK2NsYXNzIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOwordGVtcGxhdGU8dHlwZW5h
bWU+IGNsYXNzIEV4Y2VwdGlvbk9yOwogCiBjbGFzcyBGaWxlU3lzdGVtRmlsZUhhbmRsZSBmaW5h
bCA6IHB1YmxpYyBGaWxlU3lzdGVtSGFuZGxlIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVE
KEZpbGVTeXN0ZW1GaWxlSGFuZGxlKTsKQEAgLTM3LDYgKzQwLDEyIEBAIHB1YmxpYzoKICAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZpbGVTeXN0ZW1GaWxlSGFuZGxlPiBjcmVhdGUoU3Ry
aW5nJiYsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uPiYmKTsKICAgICB2b2lkIGdldEZpbGUoRE9NUHJvbWlzZURlZmVycmVkPElETElu
dGVyZmFjZTxGaWxlPj4mJik7CiAKKyAgICB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRE9N
UHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4+
JiYpOworICAgIHZvaWQgZ2V0U2l6ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIsIERPTVByb21pc2VEZWZlcnJlZDxJRExVbnNpZ25lZExvbmdMb25nPiYmKTsKKyAgICB2b2lk
IHRydW5jYXRlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdW5zaWduZWQg
bG9uZyBsb25nIHNpemUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKyAgICB2b2lkIGZs
dXNoKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRE9NUHJvbWlzZURlZmVy
cmVkPHZvaWQ+JiYpOworICAgIHZvaWQgY2xvc2UoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYm
KTsKKwogcHJpdmF0ZToKICAgICBGaWxlU3lzdGVtRmlsZUhhbmRsZShTdHJpbmcmJiwgRmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYp
OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaWRsCmluZGV4IDllNmFhODg1NmVkOTdi
NmNiYTQ2Mzg1MDVhZmFhMWU1NWE2ZDk1ZjUuLmMxMzkyZjU1MTY2ODM1NzhjNGE0ODJmMWE2ZDkw
ODhhODRjOTFhYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmlkbApAQCAtMjMsMTEg
KzIzLDEzIEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAorLy8g
aHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9maWxlLXN5c3RlbS1hY2Nlc3MvI2FwaS1maWxlc3lzdGVt
aGFuZGxlCisKIFsKICAgICBFbmFibGVkQnlTZXR0aW5nPUZpbGVTeXN0ZW1BY2Nlc3NFbmFibGVk
LAogICAgIEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpLAogICAgIFNlY3VyZUNvbnRleHQKIF0gaW50
ZXJmYWNlIEZpbGVTeXN0ZW1GaWxlSGFuZGxlIDogRmlsZVN5c3RlbUhhbmRsZSB7CiAgICAgUHJv
bWlzZTxGaWxlPiBnZXRGaWxlKCk7Ci0gICAgLy8gRklYTUU6IGFkZCBQcm9taXNlPEZpbGVTeXN0
ZW1Xcml0YWJsZUZpbGVTdHJlYW0+IGNyZWF0ZVdyaXRhYmxlKG9wdGlvbmFsIEZpbGVTeXN0ZW1D
cmVhdGVXcml0YWJsZU9wdGlvbnMgb3B0aW9ucyk7CisgICAgW0V4cG9zZWQ9V29ya2VyXSBQcm9t
aXNlPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPiBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKCk7
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IGU2MDVh
NjdkOTJhYjQzNmZkNjQ4M2UzNzhiNmY2MzhiNGQ4MWFhMGQuLjRjMGYzYjAwZmEyZGNmODY2ODUz
YWViNjE0MGVjNjRhMzczNWRhNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4K
ICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KIApAQCAtMzgsMTUgKzM5LDI0
IEBAIHRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKIGNsYXNzIEZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24+IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5GaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb24oKSB7IH0KKwogICAgIHVzaW5nIFNhbWVFbnRyeUNhbGxiYWNrID0g
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjxib29sPiYmKT47CiAgICAgdXNpbmcg
R2V0SGFuZGxlQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPEZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyPiYmKT47Ci0gICAgdXNpbmcgUmVtb3ZlRW50cnlDYWxs
YmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+OwogICAg
IHVzaW5nIFJlc29sdmVDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9u
T3I8VmVjdG9yPFN0cmluZz4+JiYpPjsKKyAgICB1c2luZyBHZXRBY2Nlc3NIYW5kbGVDYWxsYmFj
ayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8RmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGVJZGVudGlmaWVyPiYmKT47CisgICAgdXNpbmcgVm9pZENhbGxiYWNrID0gQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT47CisgICAgdXNpbmcgSW50ZWdl
ckNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx1aW50NjRfdD4m
Jik+OworCiAgICAgdmlydHVhbCB2b2lkIGlzU2FtZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgU2FtZUVudHJ5Q2FsbGJhY2smJikg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBnZXRGaWxlSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIEdldEhh
bmRsZUNhbGxiYWNrJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0RGlyZWN0b3J5SGFuZGxl
KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3Jl
YXRlSWZOZWNlc3NhcnksIEdldEhhbmRsZUNhbGxiYWNrJiYpID0gMDsKLSAgICB2aXJ0dWFsIHZv
aWQgcmVtb3ZlRW50cnkoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
bmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgUmVtb3ZlRW50cnlDYWxsYmFjayYmKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHksIFZvaWRDYWxsYmFj
ayYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlc29sdmUoRmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZXNvbHZlQ2FsbGJhY2smJikgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBHZXRBY2Nlc3NIYW5kbGVDYWxsYmFjayYmKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIGdldFNpemUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciwgSW50ZWdlckNhbGxiYWNrJiYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgdHJ1bmNhdGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSwgVm9pZENhbGxiYWNrJiYp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZmx1c2goRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIs
IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgVm9pZENhbGxiYWNrJiYpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgVm9pZENhbGxiYWNrJiYpID0gMDsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4OTFlNDk3YjgwZWI1YWJjOGUwZWUyNTA4YWY1
MTNlMDQ3NWY3NWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwCkBAIC0wLDAgKzEs
ODUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaCIKKworI2luY2x1ZGUgIkJ1ZmZlclNvdXJjZS5oIgorI2lu
Y2x1ZGUgIkZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgiCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVm
ZXJyZWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8RmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGU+IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjcmVhdGUoRmlsZVN5c3RlbUZp
bGVIYW5kbGUmIHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlk
ZW50aWZpZXIpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGUoc291cmNlLCBpZGVudGlmaWVyKSk7Cit9CisKK0ZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtRmlsZUhhbmRsZSYg
c291cmNlLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikK
KyAgICA6IG1fc291cmNlKHNvdXJjZSkKKyAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQor
eworfQorCitGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6fkZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlKCkKK3sKKyAgICBpZiAoIW1faXNDbG9zZWQpCisgICAgICAgIG1fc291cmNlLT5jbG9z
ZShtX2lkZW50aWZpZXIsIFtdKGF1dG8pIHsgfSk7Cit9CisKK3ZvaWQgRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGU6OnRydW5jYXRlKHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBET01Qcm9taXNl
RGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQoreworICAgIG1fc291cmNlLT50cnVuY2F0ZShtX2lk
ZW50aWZpZXIsIHNpemUsIFdURk1vdmUocHJvbWlzZSkpOworfQorCit2b2lkIEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlOjpnZXRTaXplKERPTVByb21pc2VEZWZlcnJlZDxJRExVbnNpZ25lZExv
bmdMb25nPiYmIHByb21pc2UpCit7CisgICAgbV9zb3VyY2UtPmdldFNpemUobV9pZGVudGlmaWVy
LCBXVEZNb3ZlKHByb21pc2UpKTsKK30KKwordm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZTo6Zmx1c2goRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3sKKyAgICBtX3Nv
dXJjZS0+Zmx1c2gobV9pZGVudGlmaWVyLCBXVEZNb3ZlKHByb21pc2UpKTsKK30KKwordm9pZCBG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y2xvc2UoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+
JiYgcHJvbWlzZSkKK3sKKyAgICBpZiAobV9pc0Nsb3NlZCkKKyAgICAgICAgcmV0dXJuIHByb21p
c2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOworCisgICAgbV9zb3Vy
Y2UtPmNsb3NlKG1faWRlbnRpZmllciwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBw
cm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgICAg
ICBpZiAod2Vha1RoaXMpCisgICAgICAgICAgICB3ZWFrVGhpcy0+ZGlkQ2xvc2UoKTsKKworICAg
ICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOworICAgIH0pOworfQorCit2b2lk
IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpkaWRDbG9zZSgpCit7CisgICAgbV9pc0Nsb3Nl
ZCA9IHRydWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjllNDE1N2I2NTQxYjkzZTZlYTVmZTAy
MzdmMGNmMjE1ZDAzYzNiZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oCkBAIC0wLDAg
KzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIklETFR5cGVzLmgiCisj
aW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBG
aWxlU3lzdGVtRmlsZUhhbmRsZTsKK3RlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBET01Qcm9taXNl
RGVmZXJyZWQ7CisKK2NsYXNzIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlIDogcHVibGljIFJl
ZkNvdW50ZWQ8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQ
dHI8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+IHsKK3B1YmxpYzoKKyAgICBzdHJ1Y3QgRmls
ZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMgeworICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgYXQ7
CisgICAgfTsKKworICAgIHN0YXRpYyBSZWY8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+IGNy
ZWF0ZShGaWxlU3lzdGVtRmlsZUhhbmRsZSYsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRl
bnRpZmllcik7CisgICAgfkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKCk7CisKKyAgICB2b2lk
IHRydW5jYXRlKHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9p
ZD4mJik7CisgICAgdm9pZCBnZXRTaXplKERPTVByb21pc2VEZWZlcnJlZDxJRExVbnNpZ25lZExv
bmdMb25nPiYmKTsKKyAgICB2b2lkIGZsdXNoKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsK
KyAgICB2b2lkIGNsb3NlKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKyAgICB2b2lkIGRp
ZENsb3NlKCk7CisKK3ByaXZhdGU6CisgICAgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoRmls
ZVN5c3RlbUZpbGVIYW5kbGUmLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIp
OworCisgICAgUmVmPEZpbGVTeXN0ZW1GaWxlSGFuZGxlPiBtX3NvdXJjZTsKKyAgICBGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgIGJvb2wgbV9p
c0Nsb3NlZCB7IGZhbHNlIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMTIwNjRhNmRm
NjExYzQxMjFlMjVjNzEwMmYwMzMwM2NlNDQ5NGFhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlLmlkbApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRCeVNl
dHRpbmc9QWNjZXNzSGFuZGxlRW5hYmxlZCwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxl
LAorICAgIEV4cG9zZWQ9RGVkaWNhdGVkV29ya2VyLAorICAgIFNlY3VyZUNvbnRleHQKK10gaW50
ZXJmYWNlIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlIHsKKyAgICBQcm9taXNlPHVuZGVmaW5l
ZD4gdHJ1bmNhdGUoW0VuZm9yY2VSYW5nZV0gdW5zaWduZWQgbG9uZyBsb25nIHNpemUpOworICAg
IFByb21pc2U8dW5zaWduZWQgbG9uZyBsb25nPiBnZXRTaXplKCk7CisgICAgUHJvbWlzZTx1bmRl
ZmluZWQ+IGZsdXNoKCk7CisgICAgUHJvbWlzZTx1bmRlZmluZWQ+IGNsb3NlKCk7Cit9OworCitk
aWN0aW9uYXJ5IEZpbGVzeXN0ZW1SZWFkV3JpdGVPcHRpb25zIHsKKyAgICBbRW5mb3JjZVJhbmdl
XSB1bnNpZ25lZCBsb25nIGxvbmcgYXQ7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRp
Zmllci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMxMzUxYmYyZDk0ZTVm
M2E3ZTYxYzY5OWNhYjgyN2ExNzhiNjE3NWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyLmgKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitlbnVtIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllclR5cGUgeyB9Owor
dXNpbmcgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRp
ZmllcjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXJUeXBlPjsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uY3BwCmluZGV4IDQ1ZWIzZWM5NWI3NjUxZTdjMTVlMzBhNjk5YzQ3NGI2
NTUyZDQzY2QuLmZhN2Y2NjkzNTcxNjBiNzkxZGMyNWExYTMyMDgzZGEyNjk4NTY2YjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCkBA
IC02NCw3ICs2NCw3IEBAIHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpz
Y29wZUNsb3NlZCgpCiAgICAgZm9yIChhdXRvJiBjYWxsYmFjayA6IGdldEhhbmRsZUNhbGxiYWNr
cy52YWx1ZXMoKSkKICAgICAgICAgY2FsbGJhY2soRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJy
b3IgfSk7CiAKLSAgICBhdXRvIHJlbW92ZUVudHJ5Q2FsbGJhY2tzID0gc3RkOjpleGNoYW5nZSht
X3JlbW92ZUVudHJ5Q2FsbGJhY2tzLCB7IH0pOworICAgIGF1dG8gcmVtb3ZlRW50cnlDYWxsYmFj
a3MgPSBzdGQ6OmV4Y2hhbmdlKG1fdm9pZENhbGxiYWNrcywgeyB9KTsKICAgICBmb3IgKGF1dG8m
IGNhbGxiYWNrIDogcmVtb3ZlRW50cnlDYWxsYmFja3MudmFsdWVzKCkpCiAgICAgICAgIGNhbGxi
YWNrKEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOwogCkBAIC0xNDcsMTkgKzE0Nywx
OSBAQCB2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6ZGlkR2V0SGFuZGxl
KENhbGxiYWNrSWRlbnRpZmllciBjYWxsYmFjawogICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKHJl
c3VsdCkpOwogfQogCi12b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6cmVt
b3ZlRW50cnkoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb246OlJlbW92ZUVudHJ5Q2FsbGJhY2smJiBjYWxsYmFjaykKK3ZvaWQgV29ya2VyRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpyZW1vdmVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZl
bHksIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Vm9pZENhbGxiYWNrJiYgY2FsbGJhY2sp
CiB7CiAgICAgaWYgKCFtX3Njb3BlKQogICAgICAgICByZXR1cm4gY2FsbGJhY2soRXhjZXB0aW9u
IHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CiAKICAgICBhdXRvIGNhbGxiYWNrSWRlbnRpZmllciA9
IENhbGxiYWNrSWRlbnRpZmllcjo6Z2VuZXJhdGVUaHJlYWRTYWZlKCk7Ci0gICAgbV9yZW1vdmVF
bnRyeUNhbGxiYWNrcy5hZGQoY2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7
CisgICAgbV92b2lkQ2FsbGJhY2tzLmFkZChjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUoY2Fs
bGJhY2spKTsKIAogICAgIGNhbGxPbk1haW5UaHJlYWQoW2NhbGxiYWNrSWRlbnRpZmllciwgd29y
a2VyVGhyZWFkID0gUmVmIHsgbV9zY29wZS0+dGhyZWFkKCkgfSwgbWFpblRocmVhZENvbm5lY3Rp
b24gPSBtX21haW5UaHJlYWRDb25uZWN0aW9uLCBpZGVudGlmaWVyLCBuYW1lID0gbmFtZS5pc29s
YXRlZENvcHkoKSwgZGVsZXRlUmVjdXJzaXZlbHldKCkgbXV0YWJsZSB7CiAgICAgICAgIGF1dG8g
bWFpblRocmVhZENhbGxiYWNrID0gW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0g
V1RGTW92ZSh3b3JrZXJUaHJlYWQpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgICAg
ICB3b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoW2NhbGxiYWNrSWRlbnRp
ZmllciwgcmVzdWx0ID0gY3Jvc3NUaHJlYWRDb3B5KHJlc3VsdCldIChhdXRvJiBzY29wZSkgbXV0
YWJsZSB7CiAgICAgICAgICAgICAgICAgaWYgKGF1dG8gY29ubmVjdGlvbiA9IGRvd25jYXN0PFdv
cmtlckdsb2JhbFNjb3BlPihzY29wZSkuZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKCkpCi0g
ICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPmRpZFJlbW92ZUVudHJ5KGNhbGxiYWNrSWRl
bnRpZmllciwgV1RGTW92ZShyZXN1bHQpKTsKKyAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlv
bi0+Y29tcGxldGVWb2lkQ2FsbGJhY2soY2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3Vs
dCkpOwogICAgICAgICAgICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CiAgICAg
ICAgIH07CiAKQEAgLTE2NywxMiArMTY3LDYgQEAgdm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb246OnJlbW92ZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGkKICAg
ICB9KTsKIH0KIAotdm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmRpZFJl
bW92ZUVudHJ5KENhbGxiYWNrSWRlbnRpZmllciBjYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlv
bk9yPHZvaWQ+JiYgcmVzdWx0KQotewotICAgIGlmIChhdXRvIGNhbGxiYWNrID0gbV9yZW1vdmVF
bnRyeUNhbGxiYWNrcy50YWtlKGNhbGxiYWNrSWRlbnRpZmllcikpCi0gICAgICAgIGNhbGxiYWNr
KFdURk1vdmUocmVzdWx0KSk7Ci19Ci0KIHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpyZXNvbHZlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIEZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIG90aGVySWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOjpSZXNvbHZlQ2FsbGJhY2smJiBjYWxsYmFjaykKIHsKICAgICBpZiAoIW1f
c2NvcGUpCkBAIC0xOTksNCArMTkzLDEyMiBAQCB2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbjo6ZGlkUmVzb2x2ZShDYWxsYmFja0lkZW50aWZpZXIgY2FsbGJhY2tJZAogICAg
ICAgICBjYWxsYmFjayhXVEZNb3ZlKHJlc3VsdCkpOwogfQogCit2b2lkIFdvcmtlckZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbjo6ZGlkQ3JlYXRlU3luY0FjY2Vzc0hhbmRsZShDYWxsYmFja0lk
ZW50aWZpZXIgY2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXI+JiYgcmVzdWx0KQoreworICAgIGlmIChhdXRvIGNhbGxiYWNr
ID0gbV9nZXRBY2Nlc3NIYW5kbENhbGxiYWNrcy50YWtlKGNhbGxiYWNrSWRlbnRpZmllcikpCisg
ICAgICAgIGNhbGxiYWNrKFdURk1vdmUocmVzdWx0KSk7Cit9CisKK3ZvaWQgV29ya2VyRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjb21wbGV0ZUludGVnZXJDYWxsYmFjayhDYWxsYmFja0lk
ZW50aWZpZXIgY2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25Pcjx1aW50NjRfdD4mJiByZXN1
bHQpCit7CisgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX2ludGVnZXJDYWxsYmFja3MudGFrZShj
YWxsYmFja0lkZW50aWZpZXIpKQorICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKHJlc3VsdCkpOwor
fQorCit2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y29tcGxldGVWb2lk
Q2FsbGJhY2soQ2FsbGJhY2tJZGVudGlmaWVyIGNhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9u
T3I8dm9pZD4mJiByZXN1bHQpCit7CisgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX3ZvaWRDYWxs
YmFja3MudGFrZShjYWxsYmFja0lkZW50aWZpZXIpKQorICAgICAgICBjYWxsYmFjayhXVEZNb3Zl
KHJlc3VsdCkpOworfQorCit2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6
Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlm
aWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEFjY2Vzc0hhbmRsZUNhbGxiYWNr
JiYgY2FsbGJhY2spCit7CisgICAgaWYgKCFtX3Njb3BlKQorICAgICAgICByZXR1cm4gY2FsbGJh
Y2soRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CisKKyAgICBhdXRvIGNhbGxiYWNr
SWRlbnRpZmllciA9IENhbGxiYWNrSWRlbnRpZmllcjo6Z2VuZXJhdGVUaHJlYWRTYWZlKCk7Cisg
ICAgbV9nZXRBY2Nlc3NIYW5kbENhbGxiYWNrcy5hZGQoY2FsbGJhY2tJZGVudGlmaWVyLCBXVEZN
b3ZlKGNhbGxiYWNrKSk7CisKKyAgICBjYWxsT25NYWluVGhyZWFkKFtjYWxsYmFja0lkZW50aWZp
ZXIsIHdvcmtlclRocmVhZCA9IFJlZiB7IG1fc2NvcGUtPnRocmVhZCgpIH0sIG1haW5UaHJlYWRD
b25uZWN0aW9uID0gbV9tYWluVGhyZWFkQ29ubmVjdGlvbiwgaWRlbnRpZmllcl0oKSBtdXRhYmxl
IHsKKyAgICAgICAgYXV0byBtYWluVGhyZWFkQ2FsbGJhY2sgPSBbY2FsbGJhY2tJZGVudGlmaWVy
LCB3b3JrZXJUaHJlYWQgPSBXVEZNb3ZlKHdvcmtlclRocmVhZCldKGF1dG8gcmVzdWx0KSBtdXRh
YmxlIHsKKyAgICAgICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9k
ZShbY2FsbGJhY2tJZGVudGlmaWVyLCByZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0KV0g
KGF1dG8mIHNjb3BlKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBjb25uZWN0
aW9uID0gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5maWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24oKSkKKyAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+ZGlkQ3JlYXRl
U3luY0FjY2Vzc0hhbmRsZShjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUocmVzdWx0KSk7Cisg
ICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKKyAgICAgICAgfTsK
KworICAgICAgICBtYWluVGhyZWFkQ29ubmVjdGlvbi0+Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZShp
ZGVudGlmaWVyLCBXVEZNb3ZlKG1haW5UaHJlYWRDYWxsYmFjaykpOworICAgIH0pOworfQorCit2
b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Z2V0U2l6ZShGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uOjpJbnRlZ2VyQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBpZiAoIW1fc2NvcGUpCisg
ICAgICAgIHJldHVybiBjYWxsYmFjayhFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsK
KworICAgIGF1dG8gY2FsbGJhY2tJZGVudGlmaWVyID0gQ2FsbGJhY2tJZGVudGlmaWVyOjpnZW5l
cmF0ZVRocmVhZFNhZmUoKTsKKyAgICBtX2ludGVnZXJDYWxsYmFja3MuYWRkKGNhbGxiYWNrSWRl
bnRpZmllciwgV1RGTW92ZShjYWxsYmFjaykpOworCisgICAgY2FsbE9uTWFpblRocmVhZChbY2Fs
bGJhY2tJZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQgPSBSZWYgeyBtX3Njb3BlLT50aHJlYWQoKSB9
LCBtYWluVGhyZWFkQ29ubmVjdGlvbiA9IG1fbWFpblRocmVhZENvbm5lY3Rpb24sIGlkZW50aWZp
ZXIsIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXJdKCkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8gbWFp
blRocmVhZENhbGxiYWNrID0gW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gV1RG
TW92ZSh3b3JrZXJUaHJlYWQpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgICAgICB3
b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoW2NhbGxiYWNrSWRlbnRpZmll
ciwgcmVzdWx0ID0gY3Jvc3NUaHJlYWRDb3B5KHJlc3VsdCldIChhdXRvJiBzY29wZSkgbXV0YWJs
ZSB7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gY29ubmVjdGlvbiA9IGRvd25jYXN0PFdvcmtl
ckdsb2JhbFNjb3BlPihzY29wZSkuZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKCkpCisgICAg
ICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPmNvbXBsZXRlSW50ZWdlckNhbGxiYWNrKGNhbGxi
YWNrSWRlbnRpZmllciwgV1RGTW92ZShyZXN1bHQpKTsKKyAgICAgICAgICAgIH0sIFdvcmtlclJ1
bkxvb3A6OmRlZmF1bHRNb2RlKCkpOworICAgICAgICB9OworCisgICAgICAgIG1haW5UaHJlYWRD
b25uZWN0aW9uLT5nZXRTaXplKGlkZW50aWZpZXIsIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdU
Rk1vdmUobWFpblRocmVhZENhbGxiYWNrKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV29ya2VyRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjp0cnVuY2F0ZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNj
ZXNzSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSwgRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpWb2lkQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBpZiAoIW1fc2NvcGUpCisg
ICAgICAgIHJldHVybiBjYWxsYmFjayhFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsK
KworICAgIGF1dG8gY2FsbGJhY2tJZGVudGlmaWVyID0gQ2FsbGJhY2tJZGVudGlmaWVyOjpnZW5l
cmF0ZVRocmVhZFNhZmUoKTsKKyAgICBtX3ZvaWRDYWxsYmFja3MuYWRkKGNhbGxiYWNrSWRlbnRp
ZmllciwgV1RGTW92ZShjYWxsYmFjaykpOworCisgICAgY2FsbE9uTWFpblRocmVhZChbY2FsbGJh
Y2tJZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQgPSBSZWYgeyBtX3Njb3BlLT50aHJlYWQoKSB9LCBt
YWluVGhyZWFkQ29ubmVjdGlvbiA9IG1fbWFpblRocmVhZENvbm5lY3Rpb24sIGlkZW50aWZpZXIs
IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHNpemVdKCkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8g
bWFpblRocmVhZENhbGxiYWNrID0gW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0g
V1RGTW92ZSh3b3JrZXJUaHJlYWQpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgICAg
ICB3b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoW2NhbGxiYWNrSWRlbnRp
ZmllciwgcmVzdWx0ID0gY3Jvc3NUaHJlYWRDb3B5KHJlc3VsdCldIChhdXRvJiBzY29wZSkgbXV0
YWJsZSB7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gY29ubmVjdGlvbiA9IGRvd25jYXN0PFdv
cmtlckdsb2JhbFNjb3BlPihzY29wZSkuZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKCkpCisg
ICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPmNvbXBsZXRlVm9pZENhbGxiYWNrKGNhbGxi
YWNrSWRlbnRpZmllciwgV1RGTW92ZShyZXN1bHQpKTsKKyAgICAgICAgICAgIH0sIFdvcmtlclJ1
bkxvb3A6OmRlZmF1bHRNb2RlKCkpOworICAgICAgICB9OworCisgICAgICAgIG1haW5UaHJlYWRD
b25uZWN0aW9uLT50cnVuY2F0ZShpZGVudGlmaWVyLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBz
aXplLCBXVEZNb3ZlKG1haW5UaHJlYWRDYWxsYmFjaykpOworICAgIH0pOworfQorCit2b2lkIFdv
cmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Zmx1c2goRmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVy
IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Vm9p
ZENhbGxiYWNrJiYgY2FsbGJhY2spCit7CisgICAgaWYgKCFtX3Njb3BlKQorICAgICAgICByZXR1
cm4gY2FsbGJhY2soRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CisKKyAgICBhdXRv
IGNhbGxiYWNrSWRlbnRpZmllciA9IENhbGxiYWNrSWRlbnRpZmllcjo6Z2VuZXJhdGVUaHJlYWRT
YWZlKCk7CisgICAgbV92b2lkQ2FsbGJhY2tzLmFkZChjYWxsYmFja0lkZW50aWZpZXIsIFdURk1v
dmUoY2FsbGJhY2spKTsKKworICAgIGNhbGxPbk1haW5UaHJlYWQoW2NhbGxiYWNrSWRlbnRpZmll
ciwgd29ya2VyVGhyZWFkID0gUmVmIHsgbV9zY29wZS0+dGhyZWFkKCkgfSwgbWFpblRocmVhZENv
bm5lY3Rpb24gPSBtX21haW5UaHJlYWRDb25uZWN0aW9uLCBpZGVudGlmaWVyLCBhY2Nlc3NIYW5k
bGVJZGVudGlmaWVyXSgpIG11dGFibGUgeworICAgICAgICBhdXRvIG1haW5UaHJlYWRDYWxsYmFj
ayA9IFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFdURk1vdmUod29ya2VyVGhy
ZWFkKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgICAgICAgICAgd29ya2VyVGhyZWFkLT5y
dW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFtjYWxsYmFja0lkZW50aWZpZXIsIHJlc3VsdCA9IGNy
b3NzVGhyZWFkQ29weShyZXN1bHQpXSAoYXV0byYgc2NvcGUpIG11dGFibGUgeworICAgICAgICAg
ICAgICAgIGlmIChhdXRvIGNvbm5lY3Rpb24gPSBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4o
c2NvcGUpLmZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbigpKQorICAgICAgICAgICAgICAgICAg
ICBjb25uZWN0aW9uLT5jb21wbGV0ZVZvaWRDYWxsYmFjayhjYWxsYmFja0lkZW50aWZpZXIsIFdU
Rk1vdmUocmVzdWx0KSk7CisgICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9k
ZSgpKTsKKyAgICAgICAgfTsKKworICAgICAgICBtYWluVGhyZWFkQ29ubmVjdGlvbi0+Zmx1c2go
aWRlbnRpZmllciwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV1RGTW92ZShtYWluVGhyZWFkQ2Fs
bGJhY2spKTsKKyAgICB9KTsKK30KKwordm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb246OmNsb3NlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmIGNhbGxiYWNrKQorewor
ICAgIGlmICghbV9zY29wZSkKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IElu
dmFsaWRTdGF0ZUVycm9yIH0pOworCisgICAgYXV0byBjYWxsYmFja0lkZW50aWZpZXIgPSBDYWxs
YmFja0lkZW50aWZpZXI6OmdlbmVyYXRlVGhyZWFkU2FmZSgpOworICAgIG1fdm9pZENhbGxiYWNr
cy5hZGQoY2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisKKyAgICBjYWxs
T25NYWluVGhyZWFkKFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFJlZiB7IG1f
c2NvcGUtPnRocmVhZCgpIH0sIG1haW5UaHJlYWRDb25uZWN0aW9uID0gbV9tYWluVGhyZWFkQ29u
bmVjdGlvbiwgaWRlbnRpZmllciwgYWNjZXNzSGFuZGxlSWRlbnRpZmllcl0oKSBtdXRhYmxlIHsK
KyAgICAgICAgYXV0byBtYWluVGhyZWFkQ2FsbGJhY2sgPSBbY2FsbGJhY2tJZGVudGlmaWVyLCB3
b3JrZXJUaHJlYWQgPSBXVEZNb3ZlKHdvcmtlclRocmVhZCldKGF1dG8gcmVzdWx0KSBtdXRhYmxl
IHsKKyAgICAgICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShb
Y2FsbGJhY2tJZGVudGlmaWVyLCByZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0KV0gKGF1
dG8mIHNjb3BlKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBjb25uZWN0aW9u
ID0gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5maWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24oKSkKKyAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+Y29tcGxldGVWb2lk
Q2FsbGJhY2soY2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAg
ICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CisgICAgICAgIH07CisKKyAgICAg
ICAgbWFpblRocmVhZENvbm5lY3Rpb24tPmNsb3NlKGlkZW50aWZpZXIsIGFjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIsIFdURk1vdmUobWFpblRocmVhZENhbGxiYWNrKSk7CisgICAgfSk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uaAppbmRleCBlYzY5ZDE3NWEyZjc1OWYwNmIzZjFjNTQ3NDRkNzEwYzll
NjFjM2FjLi45MGNiY2JmNjczYTU4NmYyNzQ0MmY5NjQwMzQ3YTkyNTI2NTBjZmM0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCkBAIC00Niw4
ICs0NiwxMCBAQCBwdWJsaWM6CiAgICAgdXNpbmcgQ2FsbGJhY2tJZGVudGlmaWVyID0gV29ya2Vy
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uQ2FsbGJhY2tJZGVudGlmaWVyOwogICAgIHZvaWQg
ZGlkSXNTYW1lRW50cnkoQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25Pcjxib29sPiYmKTsK
ICAgICB2b2lkIGRpZEdldEhhbmRsZShDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPEZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyPiYmKTsKLSAgICB2b2lkIGRpZFJlbW92ZUVudHJ5KENh
bGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8dm9pZD4mJik7CiAgICAgdm9pZCBkaWRSZXNv
bHZlKENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8VmVjdG9yPFN0cmluZz4+JiYpOwor
ICAgIHZvaWQgZGlkQ3JlYXRlU3luY0FjY2Vzc0hhbmRsZShDYWxsYmFja0lkZW50aWZpZXIsIEV4
Y2VwdGlvbk9yPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcj4mJiByZXN1bHQp
OworICAgIHZvaWQgY29tcGxldGVWb2lkQ2FsbGJhY2soQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNl
cHRpb25Pcjx2b2lkPiYmIHJlc3VsdCk7CisgICAgdm9pZCBjb21wbGV0ZUludGVnZXJDYWxsYmFj
ayhDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPHVpbnQ2NF90PiYmIHJlc3VsdCk7CiAK
IHByaXZhdGU6CiAgICAgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKFdvcmtlckds
b2JhbFNjb3BlJiwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJik7CkBAIC01Niwx
NSArNTgsMjMgQEAgcHJpdmF0ZToKICAgICB2b2lkIGlzU2FtZUVudHJ5KEZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOjpTYW1lRW50cnlDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIGdldEZp
bGVIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwg
Ym9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRI
YW5kbGVDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIGdldERpcmVjdG9yeUhhbmRsZShGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlm
TmVjZXNzYXJ5LCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhhbmRsZUNhbGxiYWNr
JiYpIGZpbmFsOwotICAgIHZvaWQgcmVtb3ZlRW50cnkoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uOjpSZW1vdmVFbnRyeUNhbGxiYWNrJiYpIGZpbmFsOworICAgIHZv
aWQgcmVtb3ZlRW50cnkoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
bmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OjpWb2lkQ2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9pZCByZXNvbHZlKEZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOjpSZXNvbHZlQ2FsbGJhY2smJikgZmluYWw7CiAKKyAgICB2b2lkIGNyZWF0
ZVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6R2V0QWNjZXNzSGFuZGxlQ2FsbGJhY2smJikgZmluYWw7CisgICAg
dm9pZCBnZXRTaXplKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6SW50ZWdl
ckNhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgdHJ1bmNhdGUoRmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3Qg
c2l6ZSwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJikgZmluYWw7
CisgICAgdm9pZCBmbHVzaChGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZv
aWRDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIGNsb3NlKEZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6Vm9pZENhbGxiYWNrJiYpIGZpbmFsOworCiAgICAgV2Vha1B0cjxX
b3JrZXJHbG9iYWxTY29wZT4gbV9zY29wZTsKICAgICBSZWZQdHI8RmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uPiBtX21haW5UaHJlYWRDb25uZWN0aW9uOwogICAgIEhhc2hNYXA8Q2FsbGJhY2tJ
ZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlNhbWVFbnRyeUNhbGxiYWNr
PiBtX3NhbWVFbnRyeUNhbGxiYWNrczsKICAgICBIYXNoTWFwPENhbGxiYWNrSWRlbnRpZmllciwg
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRIYW5kbGVDYWxsYmFjaz4gbV9nZXRIYW5k
bGVDYWxsYmFja3M7Ci0gICAgSGFzaE1hcDxDYWxsYmFja0lkZW50aWZpZXIsIEZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6UmVtb3ZlRW50cnlDYWxsYmFjaz4gbV9yZW1vdmVFbnRyeUNhbGxi
YWNrczsKICAgICBIYXNoTWFwPENhbGxiYWNrSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOjpSZXNvbHZlQ2FsbGJhY2s+IG1fcmVzb2x2ZUNhbGxiYWNrczsKKyAgICBIYXNo
TWFwPENhbGxiYWNrSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRB
Y2Nlc3NIYW5kbGVDYWxsYmFjaz4gbV9nZXRBY2Nlc3NIYW5kbENhbGxiYWNrczsKKyAgICBIYXNo
TWFwPENhbGxiYWNrSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lk
Q2FsbGJhY2s+IG1fdm9pZENhbGxiYWNrczsKKyAgICBIYXNoTWFwPENhbGxiYWNrSWRlbnRpZmll
ciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpJbnRlZ2VyQ2FsbGJhY2s+IG1faW50ZWdl
ckNhbGxiYWNrczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5k
ZXggNmI2ZDk0MjFiNzFlNDQyNjhjYjYwMDc4OTUwYzEwNTU1YTYyZDVmYS4uYzhiOTMzN2JiNWEw
Y2Q1ZDczNGEwYmIzNGY3M2Q3NTY3ODVkODcxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTYxLDYgKzYx
LDcgQEAgTW9kdWxlcy9mZXRjaC9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlRmV0Y2guY3BwCiBN
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5jcHAKIE1v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKIE1vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmNwcAorTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcAogTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKIE1vZHVsZXMvZ2Vv
bG9jYXRpb24vR2VvTm90aWZpZXIuY3BwCiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9u
LmNwcApAQCAtMzA0NSw2ICszMDQ2LDcgQEAgSlNGaWxlU3lzdGVtRW50cnlDYWxsYmFjay5jcHAK
IEpTRmlsZVN5c3RlbUZpbGVFbnRyeS5jcHAKIEpTRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCiBK
U0ZpbGVTeXN0ZW1IYW5kbGUuY3BwCitKU0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcAog
SlNGaWxsTW9kZS5jcHAKIEpTRm9jdXNFdmVudC5jcHAKIEpTRm9jdXNPcHRpb25zLmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IGVhZDAwNTAwOTU1MjQxZmQ4N2JkMzhjZDYzNDIxZTAyNThmOTZhOWUuLmM2MDc3YWY0OWIyOWI5
NTQwYWRhODgwYTk4YzUzYmQ4ZjQyNzkxODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI4MTAsNiArMjgxMCw3IEBACiAJCTkz
MEFBQzlBMjUwRUI4NDkwMDEzREE5RiAvKiBDU1NDb25kaXRpb25SdWxlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzBBQUM5ODI1MEVCODE3MDAxM0RB
OUYgLyogQ1NTQ29uZGl0aW9uUnVsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTkzMEFBQzlGMjUwRUQ0MDkwMDEzREE5RiAvKiBKU0NTU0NvbmRp
dGlvblJ1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzMEFBQzlEMjUwRUQ0MDkwMDEzREE5RiAvKiBKU0NTU0NvbmRpdGlvblJ1bGUuaCAqLzsgfTsK
IAkJOTMwQUFDQTIyNTBFRDQxMTAwMTNEQTlGIC8qIEpTQ1NTR3JvdXBpbmdSdWxlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzBBQUNBMDI1MEVENDEx
MDAxM0RBOUYgLyogSlNDU1NHcm91cGluZ1J1bGUuaCAqLzsgfTsKKwkJOTMwRTQ0ODYyNzBDMzcy
MjAwREU3QUI3IC8qIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwRTQ0ODQyNzBDMzcy
MTAwREU3QUI3IC8qIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzMTUzQkRBMTQx
ODFGN0EwMEZDRjVCRSAvKiBtaXNzaW5nSW1hZ2VAMngucG5nIGluIFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzE1M0JEOTE0MTgxRjdBMDBGQ0Y1QkUgLyog
bWlzc2luZ0ltYWdlQDJ4LnBuZyAqLzsgfTsKIAkJOTMxNTNCREMxNDE5NTlCQzAwRkNGNUJFIC8q
IHRleHRBcmVhUmVzaXplQ29ybmVyLnBuZyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTMxNTNCREIxNDE5NTlCQjAwRkNGNUJFIC8qIHRleHRBcmVhUmVz
aXplQ29ybmVyLnBuZyAqLzsgfTsKIAkJOTMxNTNCRTIxNDE5NUE1NzAwRkNGNUJFIC8qIG1pc3Np
bmdJbWFnZS5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzMTUzQkUxMTQxOTVBNTcwMEZDRjVCRSAvKiBtaXNzaW5nSW1hZ2UucG5nICovOyB9OwpA
QCAtMjk2Myw2ICsyOTY0LDcgQEAKIAkJOTNENkI3QTgyNTUxRDQxRjAwNThERDNBIC8qIER1bW15
U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTNENkI3QTYyNTUxRDNFRDAwNThERDNBIC8qIER1bW15U3BlZWNo
UmVjb2duaXRpb25Qcm92aWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTkzRDlENTNDMERBMjdFMTgwMDc3MjE2QyAvKiBSYW5nZUJvdW5kYXJ5
UG9pbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
RDlENTNCMERBMjdFMTgwMDc3MjE2QyAvKiBSYW5nZUJvdW5kYXJ5UG9pbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0UyNDFGRjBCMkI0RTQw
MDBDNzMyQTEgLyogSFRNTEZyYW1lT3duZXJFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0UyNDFGRTBCMkI0RTQwMDBDNzMyQTEgLyogSFRN
TEZyYW1lT3duZXJFbGVtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJOTNFMjY5QTIyNzBBNUQ1RDAwMkM0RkYwIC8qIEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5M0UyNjk5RjI3MEE1RDVDMDAyQzRGRjAgLyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5
M0UyQTMwNzEyM0U5REMwMDA5RkUxMkEgLyogSFRNTFBhcnNlcklkaW9tcy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNFMkEzMDUxMjNFOURDMDAwOUZF
MTJBIC8qIEhUTUxQYXJzZXJJZGlvbXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk5M0U1QjI2NTI0NTVFOTZGMDA1QzUyRDAgLyogQXR0cmlidXRl
ZFN0cmluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTNFNUIyNjMyNDU1RTk2RjAwNUM1MkQwIC8qIEF0dHJpYnV0ZWRTdHJpbmcuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0YxOThFNTA4MjQ1RTU5
MDAxRTlBQkMgLyogSFRNTERvY3VtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTIzRDIzQzAyREU0Mzk2MDE4NjM1Q0EgLyogSFRNTERvY3VtZW50
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTUy
NzEsOCArNTI3Myw4IEBACiAJCUU0N0MzOTMyMUZFNkUxMDUwMEJCQkM2QiAvKiBSZW5kZXJUcmVl
QnVpbGRlckxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEU0N0MzOTI4MUZFNkUwREQwMEJCQkM2QiAvKiBSZW5kZXJUcmVlQnVpbGRlckxpc3QuaCAq
LzsgfTsKIAkJRTQ3QzM5MzMxRkU2RTEwODAwQkJCQzZCIC8qIFJlbmRlclRyZWVCdWlsZGVyTXVs
dGlDb2x1bW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEU0N0MzOTI3MUZFNkUwREMwMEJCQkM2QiAvKiBSZW5kZXJUcmVlQnVpbGRlck11bHRpQ29sdW1u
LmggKi87IH07CiAJCUU0N0NFQkM5MjcwNkVGNTIwMEI4RDhGNSAvKiBJbmxpbmVXYWxrZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0N0NFQkM3Mjcw
NkVGNTEwMEI4RDhGNSAvKiBJbmxpbmVXYWxrZXIuaCAqLzsgfTsKLQkJRTQ3Q0VCRUEyNzA5REZE
MTAwQjhEOEY1IC8qIFJ1bGVTZXRCdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFNDdDRUJFODI3MDlERkQwMDBCOEQ4RjUgLyogUnVsZVNldEJ1
aWxkZXIuaCAqLzsgfTsKIAkJRTQ3Q0VCRTEyNzA5OTE2RDAwQjhEOEY1IC8qIElubGluZUl0ZXJh
dG9yVGV4dEJveC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTQ3Q0VCRTAyNzA5OTE2RDAwQjhEOEY1IC8qIElubGluZUl0ZXJhdG9yVGV4dEJveC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUU0N0NFQkVB
MjcwOURGRDEwMEI4RDhGNSAvKiBSdWxlU2V0QnVpbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ3Q0VCRTgyNzA5REZEMDAwQjhEOEY1IC8qIFJ1
bGVTZXRCdWlsZGVyLmggKi87IH07CiAJCUU0N0UyNzY1MTYwMzZFRDIwMEVFMkFGQiAvKiBFeHRl
bnNpb25TdHlsZVNoZWV0cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTQ3RTI3NjQxNjAzNkVEMjAwRUUyQUZCIC8qIEV4dGVuc2lvblN0eWxlU2hlZXRz
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTQ3
RkM4QTMyNUI4NEQ3MjAwNTQ5NUZDIC8qIExvYWRTY2hlZHVsaW5nTW9kZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ3RkM4QTEyNUI4NEQ3MTAwNTQ5
NUZDIC8qIExvYWRTY2hlZHVsaW5nTW9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUU0ODEzN0I5MURCM0I1MjYwMDVDNTlCRiAvKiBTdHlsZVZh
bGlkaXR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
NDgxMzdCODFEQjNCNTI2MDA1QzU5QkYgLyogU3R5bGVWYWxpZGl0eS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMTY5NCw2ICsxMTY5Niw3IEBA
CiAJCTkzMEFBQ0EwMjUwRUQ0MTEwMDEzREE5RiAvKiBKU0NTU0dyb3VwaW5nUnVsZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NTU0dyb3VwaW5nUnVsZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5MzBBQUNBMTI1MEVENDExMDAxM0RBOUYgLyogSlNDU1NH
cm91cGluZ1J1bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlND
U1NHcm91cGluZ1J1bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzBDOTBE
QzE5Q0Y5NjUzMDBENkMyMUEgLyogTGVnYWN5SW5saW5lSXRlcmF0b3IuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGVnYWN5SW5saW5lSXRlcmF0b3IuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzBFNDQ4NDI3MEMzNzIxMDBERTdBQjcgLyogRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzE1M0JEOTE0MTgxRjdBMDBGQ0Y1QkUgLyogbWlz
c2luZ0ltYWdlQDJ4LnBuZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IGltYWdlLnBuZzsgcGF0aCA9ICJtaXNzaW5nSW1hZ2VAMngucG5nIjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMxNTNCREIxNDE5NTlCQjAwRkNGNUJFIC8qIHRleHRB
cmVhUmVzaXplQ29ybmVyLnBuZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IGltYWdlLnBuZzsgcGF0aCA9IHRleHRBcmVhUmVzaXplQ29ybmVyLnBuZzsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMxNTNCRTExNDE5NUE1NzAwRkNGNUJFIC8q
IG1pc3NpbmdJbWFnZS5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSBtaXNzaW5nSW1hZ2UucG5nOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTE5OTMsNiArMTE5OTYsOSBAQAogCQk5M0UyMjdERjBBRjU4
OUFEMDBENDgzMjQgLyogU3VicmVzb3VyY2VMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gU3VicmVzb3VyY2VMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5M0UyNDFGRTBCMkI0RTQwMDBDNzMyQTEgLyogSFRNTEZyYW1lT3duZXJF
bGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxGcmFtZU93bmVy
RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0UyNDI1RTBCMkI1MDk1
MDBDNzMyQTEgLyogSFRNTEZyYW1lT3duZXJFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxGcmFtZU93bmVyRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTkzRTI2OTlEMjcwQTVENUIwMDJDNEZGMCAvKiBGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0UyNjk5
RjI3MEE1RDVDMDAyQzRGRjAgLyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNFMjY5QTAyNzBBNUQ1QzAwMkM0RkYwIC8q
IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTNFMkEzMDQxMjNFOURDMDAwOUZFMTJBIC8qIEhUTUxQYXJzZXJJ
ZGlvbXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTFBhcnNl
cklkaW9tcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRTJBMzA1MTIzRTlE
QzAwMDlGRTEyQSAvKiBIVE1MUGFyc2VySWRpb21zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEhUTUxQYXJzZXJJZGlvbXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTNFNUIyNTQyNDUzNkIxRTAwNUM1MkQwIC8qIFVSTERlY29tcG9zaXRpb24uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVVJMRGVjb21wb3NpdGlvbi5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjUzNCwxMCArMTY1NDAsMTAgQEAKIAkJRTQ3
QzM5MkIxRkU2RTBERjAwQkJCQzZCIC8qIFJlbmRlclRyZWVCdWlsZGVyTGlzdC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJUcmVlQnVpbGRlckxpc3QuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDdDMzkyQzFGRTZFMERGMDBCQkJDNkIg
LyogUmVuZGVyVHJlZVVwZGF0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVuZGVyVHJlZVVwZGF0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQ3Q0VC
QzcyNzA2RUY1MTAwQjhEOEY1IC8qIElubGluZVdhbGtlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBJbmxpbmVXYWxrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJRTQ3Q0VCRTgyNzA5REZEMDAwQjhEOEY1IC8qIFJ1bGVTZXRCdWlsZGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJ1bGVTZXRCdWlsZGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUU0N0NFQkVCMjcwOURGREMwMEI4RDhGNSAvKiBSdWxlU2V0QnVpbGRl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSdWxlU2V0QnVpbGRlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUU0N0NFQkRFMjcwOTkxNjQwMEI4RDhGNSAvKiBJbmxpbmVJdGVy
YXRvclRleHRCb3guY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5saW5lSXRlcmF0b3JUZXh0Qm94
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQ3Q0VCRTAyNzA5OTE2RDAwQjhE
OEY1IC8qIElubGluZUl0ZXJhdG9yVGV4dEJveC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBJbmxpbmVJdGVyYXRvclRleHRCb3guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRTQ3Q0VCRTgyNzA5REZEMDAwQjhEOEY1IC8qIFJ1bGVTZXRCdWlsZGVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJ1bGVTZXRCdWlsZGVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUU0N0NFQkVCMjcwOURGREMwMEI4RDhGNSAvKiBSdWxlU2V0QnVp
bGRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSdWxlU2V0QnVpbGRlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0N0UyNzY0MTYwMzZFRDIwMEVFMkFGQiAvKiBFeHRlbnNp
b25TdHlsZVNoZWV0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFeHRlbnNp
b25TdHlsZVNoZWV0cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDdFMjc2NzE2
MDM2RURDMDBFRTJBRkIgLyogRXh0ZW5zaW9uU3R5bGVTaGVldHMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXh0ZW5zaW9uU3R5bGVTaGVldHMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFNDdGQzhBMTI1Qjg0RDcxMDA1NDk1RkMgLyogTG9hZFNj
aGVkdWxpbmdNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvYWRTY2hl
ZHVsaW5nTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjM0MzUsNiArMjM0
NDEsMTAgQEAKIAkJCQk5MzJDOUJEOTI2REQ2MjYwMDA1M0IzREIgLyogRmlsZVN5c3RlbUhhbmRs
ZS5pZGwgKi8sCiAJCQkJOTM1NDI0MjcyNzAzQkM4ODAwNUNBNzJDIC8qIEZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLmggKi8sCiAJCQkJOTM1NDI0MjkyNzAzQkNBRDAwNUNBNzJDIC8qIEZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oICovLAorCQkJCTkzRTI2OUEwMjcwQTVENUMwMDJDNEZG
MCAvKiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAgKi8sCisJCQkJOTNFMjY5OUYyNzBB
NUQ1QzAwMkM0RkYwIC8qIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmggKi8sCisJCQkJOTNF
MjY5OUQyNzBBNUQ1QjAwMkM0RkYwIC8qIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbCAq
LywKKwkJCQk5MzBFNDQ4NDI3MEMzNzIxMDBERTdBQjcgLyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGVJZGVudGlmaWVyLmggKi8sCiAJCQkJOTM0NDNFN0IyNkU4QTZCQzAwNTg1MzhGIC8qIFN0
b3JhZ2VNYW5hZ2VyK0ZpbGVTeXN0ZW1BY2Nlc3MuaWRsICovLAogCQkJCTkzNDQzRTdEMjZFOEE2
QkMwMDU4NTM4RiAvKiBTdG9yYWdlTWFuYWdlckZpbGVTeXN0ZW1BY2Nlc3MuaCAqLywKIAkJCQk5
MzIzM0M4NTI3MDU0Qzc4MDBCQkY0MUUgLyogV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uLmNwcCAqLywKQEAgLTMyNTU1LDYgKzMyNTY1LDggQEAKIAkJCQk5MzQ0M0U4ODI2RTk5NUM0
MDA1ODUzOEYgLyogRmlsZVN5c3RlbUhhbmRsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM1NDI0
MkYyNzAzQ0E1MTAwNUNBNzJDIC8qIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5MzU0MjQzMDI3MDNDQjg2MDA1Q0E3MkMgLyogRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0UyNjlBMjI3MEE1RDVEMDAyQzRG
RjAgLyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkz
MEU0NDg2MjcwQzM3MjIwMERFN0FCNyAvKiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50
aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNUVCNjlGMEU4MURBRUIwMEIyNTk2NSAvKiBG
aWxsTGF5ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTcxMkJFNDgzMUZFODY1REQwMDIwMzFDQyAv
KiBGaWxsTW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODQ1RTcyRjgwRkQyNjFFRTAwQTg3RDc5
IC8qIEZpbHRlci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5kZXggZTgzNWRmN2ZmMGIyMjBkZWJhMDU4ZmQz
YTg0ZGY1ZDJjMjUxMzk1Yy4uMmJiOWE5MzliZmNiNmE5NzU4ODYyZjc4ODU2NmU3MmMwNGEwZTcw
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5O
YW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFt
ZXMuaApAQCAtMTI0LDYgKzEyNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhG
aWxlU3lzdGVtRmlsZUVudHJ5KSBcCiAgICAgbWFjcm8oRmlsZVN5c3RlbUZpbGVIYW5kbGUpIFwK
ICAgICBtYWNybyhGaWxlU3lzdGVtSGFuZGxlKSBcCisgICAgbWFjcm8oRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGUpIFwKICAgICBtYWNybyhHYW1lcGFkKSBcCiAgICAgbWFjcm8oR2FtZXBhZEJ1
dHRvbikgXAogICAgIG1hY3JvKEdhbWVwYWRFdmVudCkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUVycm9y
LmgKaW5kZXggNDQzYzk1MTRjZDkzMjkxM2RkZTM0YzI3ZjZiNWI1NzIwMWEwYTQxZi4uMzFmODQ3
MjEzNGY4ZWZhMGRiMmNlNmNjNDQ3ZmY3MGM5NjQ2YmU2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VF
cnJvci5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSA8V2Vi
Q29yZS9FeGNlcHRpb25Db2RlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9FeGNlcHRpb25Pci5oPgog
I2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMzQs
MjYgKzM0LDMyIEBAIGVudW0gY2xhc3MgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvciA6IHVpbnQ4X3Qg
ewogICAgIEZpbGVOb3RGb3VuZCwKICAgICBJbnZhbGlkTmFtZSwKICAgICBJbnZhbGlkTW9kaWZp
Y2F0aW9uLAorICAgIEludmFsaWRTdGF0ZSwKICAgICBUeXBlTWlzbWF0Y2gsCiAgICAgVW5rbm93
bgogfTsKIAotaW5saW5lIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgY29udmVydFRvRXhjZXB0aW9u
Q29kZShGaWxlU3lzdGVtU3RvcmFnZUVycm9yIGVycm9yKQoraW5saW5lIFdlYkNvcmU6OkV4Y2Vw
dGlvbk9yPHZvaWQ+IGNvbnZlcnRUb0V4Y2VwdGlvbk9yKHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvcj4gZXJyb3IpCiB7Ci0gICAgc3dpdGNoIChlcnJvcikgeworICAgIGlmICgh
ZXJyb3IpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBzd2l0Y2ggKCplcnJvcikgewogICAg
IGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6RmlsZU5vdEZvdW5kOgotICAgICAgICByZXR1
cm4gV2ViQ29yZTo6RXhjZXB0aW9uQ29kZTo6Tm90Rm91bmRFcnJvcjsKKyAgICAgICAgcmV0dXJu
IFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6Ok5vdEZvdW5kRXJyb3IgfTsKICAgICBjYXNl
IEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWRNb2RpZmljYXRpb246Ci0gICAgICAgIHJl
dHVybiBXZWJDb3JlOjpFeGNlcHRpb25Db2RlOjpJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3I7Cisg
ICAgICAgIHJldHVybiBXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpJbnZhbGlkTW9kaWZp
Y2F0aW9uRXJyb3IgfTsKICAgICBjYXNlIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlR5cGVNaXNt
YXRjaDoKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGU6OlR5cGVFcnJvcjsK
KyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlR5cGVFcnJvciB9
OwogICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxpZE5hbWU6Ci0gICAgICAg
IHJldHVybiBXZWJDb3JlOjpFeGNlcHRpb25Db2RlOjpVbmtub3duRXJyb3I7CisgICAgICAgIHJl
dHVybiBXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpVbmtub3duRXJyb3IsICJOYW1lIGlz
IGludmFsaWQiIH07CisgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpJbnZhbGlkU3Rh
dGU6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpJbnZhbGlk
U3RhdGVFcnJvciB9OwogICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bjoK
ICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbkNv
ZGU6OlVua25vd25FcnJvcjsKKyAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29y
ZTo6VW5rbm93bkVycm9yIH07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApAQCAtNjYsNiAr
NzIsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYktpdDo6RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcj4gewogICAgICAgICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkZp
bGVOb3RGb3VuZCwKICAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpJbnZh
bGlkTmFtZSwKICAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpJbnZhbGlk
TW9kaWZpY2F0aW9uLAorICAgICAgICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6Oklu
dmFsaWRTdGF0ZSwKICAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpUeXBl
TWlzbWF0Y2gsCiAgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93
bgogICAgID47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3Jh
Z2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcAppbmRleCAyMmJjM2VmNGVk
Mjc4YTE5ZTI0MDZjNzk0MGNmYjZjODM4ZDkyZGVjLi4xZjAzZTI3Y2E1NWViNGQxYWIxMWJjZDc1
MzUzMGNiZTYxNWY1MjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAKQEAgLTI4
LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaCIKICNpbmNs
dWRlICJGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuaCIKKyNpbmNsdWRlIDx3dGYvU2NvcGUuaD4K
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTEzOSw0ICsxNDAsODcgQEAgRXhwZWN0ZWQ8VmVj
dG9yPFN0cmluZz4sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlOjpyZXNvbHYKICAgICByZXR1cm4gcmVzdFBhdGguc3BsaXQocGF0aFNlcGFyYXRvcik7CiB9
CiAKK0V4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
ciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmNyZWF0
ZVN5bmNBY2Nlc3NIYW5kbGUoKQoreworICAgIGlmICghbV9tYW5hZ2VyKQorICAgICAgICByZXR1
cm4gbWFrZVVuZXhwZWN0ZWQoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bik7CisKKyAg
ICBib29sIGFjcXVpcmVkID0gbV9tYW5hZ2VyLT5hY3F1aXJlTG9ja0ZvckZpbGUobV9wYXRoLCBt
X2lkZW50aWZpZXIpOworICAgIGlmICghYWNxdWlyZWQpCisgICAgICAgIHJldHVybiBtYWtlVW5l
eHBlY3RlZChGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpJbnZhbGlkU3RhdGUpOworCisgICAgQVNT
RVJUKCFtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUpOworICAgIG1fYWN0aXZlU3luY0FjY2Vzc0hh
bmRsZSA9IFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcjo6Z2Vu
ZXJhdGVUaHJlYWRTYWZlKCk7CisgICAgcmV0dXJuIG1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZS52
YWx1ZSgpOworfQorCitFeHBlY3RlZDx1aW50NjRfdCwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4g
RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmdldFNpemUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpCit7CisgICAgaWYg
KCFtX21hbmFnZXIpCisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yOjpVbmtub3duKTsKKworICAgIGlmICghbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxl
IHx8IG1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZS52YWx1ZSgpICE9IGFjY2Vzc0hhbmRsZUlkZW50
aWZpZXIpCisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yOjpVbmtub3duKTsKKworICAgIGF1dG8gc2l6ZSA9IEZpbGVTeXN0ZW06OmZpbGVTaXplKG1f
cGF0aCk7CisgICAgaWYgKCFzaXplKQorICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bik7CisKKyAgICByZXR1cm4gc2l6ZS52YWx1ZSgp
OworfQorCitzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1T
dG9yYWdlSGFuZGxlOjp0cnVuY2F0ZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSkKK3sKKyAg
ICBpZiAoIW1fbWFuYWdlcikKKyAgICAgICAgcmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6
OlVua25vd247CisKKyAgICBpZiAoIW1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSB8fCBtX2FjdGl2
ZVN5bmNBY2Nlc3NIYW5kbGUudmFsdWUoKSAhPSBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKQorICAg
ICAgICByZXR1cm4gRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bjsKKworICAgIGF1dG8g
aGFuZGxlID0gRmlsZVN5c3RlbTo6b3BlbkZpbGUobV9wYXRoLCBGaWxlU3lzdGVtOjpGaWxlT3Bl
bk1vZGU6OlJlYWRXcml0ZSk7CisgICAgYXV0byBjbG9zZUZpbGVTY29wZSA9IG1ha2VTY29wZUV4
aXQoWyZdIHsKKyAgICAgICAgRmlsZVN5c3RlbTo6Y2xvc2VGaWxlKGhhbmRsZSk7CisgICAgfSk7
CisKKyAgICBhdXRvIHJlc3VsdCA9IEZpbGVTeXN0ZW06OnRydW5jYXRlRmlsZShoYW5kbGUsIHNp
emUpOworICAgIGlmICghcmVzdWx0KQorICAgICAgICByZXR1cm4gRmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcjo6VW5rbm93bjsKKworICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cit9CisKK3N0ZDo6b3B0
aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmZs
dXNoKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NI
YW5kbGVJZGVudGlmaWVyKQoreworICAgIGlmICghbV9tYW5hZ2VyKQorICAgICAgICByZXR1cm4g
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bjsKKworICAgIGlmICghbV9hY3RpdmVTeW5j
QWNjZXNzSGFuZGxlIHx8IG1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZS52YWx1ZSgpICE9IGFjY2Vz
c0hhbmRsZUlkZW50aWZpZXIpCisgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9y
OjpVbmtub3duOworCisgICAgYXV0byBoYW5kbGUgPSBGaWxlU3lzdGVtOjpvcGVuRmlsZShtX3Bh
dGgsIEZpbGVTeXN0ZW06OkZpbGVPcGVuTW9kZTo6UmVhZFdyaXRlKTsKKyAgICBhdXRvIGNsb3Nl
RmlsZVNjb3BlID0gbWFrZVNjb3BlRXhpdChbJl0geworICAgICAgICBGaWxlU3lzdGVtOjpjbG9z
ZUZpbGUoaGFuZGxlKTsKKyAgICB9KTsKKworICAgIGF1dG8gcmVzdWx0ID0gRmlsZVN5c3RlbTo6
Zmx1c2hGaWxlKGhhbmRsZSk7CisgICAgaWYgKCFyZXN1bHQpCisgICAgICAgIHJldHVybiBGaWxl
U3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOworCisgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
K30KKworc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZTo6Y2xvc2UoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpCit7CisgICAgaWYgKCFtX21hbmFnZXIpCisg
ICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOworCisgICAgaWYg
KCFtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgfHwgbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlLnZh
bHVlKCkgIT0gYWNjZXNzSGFuZGxlSWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I6OlVua25vd247CisKKyAgICBtX21hbmFnZXItPnJlbGVhc2VMb2NrRm9y
RmlsZShtX3BhdGgsIG1faWRlbnRpZmllcik7CisgICAgbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxl
ID0gc3RkOjpudWxsb3B0OworCisgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oCmluZGV4IDg3OTkwOTA3
ZDliODlhNTIzZjdmZjFmNTUwNzBhNTcwNjQwYWIzYjIuLmU0N2VkM2ExNmVlOTVhYjFkMTQ5OTM4
ZDE5N2Y2NDYzZDk3NDkwMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oCkBAIC0yNyw2
ICsyNyw3IEBACiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9G
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4K
IAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00OSw2ICs1MCwxMiBAQCBwdWJsaWM6CiAgICAgc3Rk
OjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZW1vdmVFbnRyeShjb25zdCBTdHJp
bmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHkpOwogICAgIEV4cGVjdGVkPFZlY3RvcjxT
dHJpbmc+LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXNvbHZlKFdlYkNvcmU6OkZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyKTsKIAorICAgIEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gY3JlYXRl
U3luY0FjY2Vzc0hhbmRsZSgpOworICAgIEV4cGVjdGVkPHVpbnQ2NF90LCBGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yPiBnZXRTaXplKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRl
bnRpZmllcik7CisgICAgc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiB0cnVu
Y2F0ZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHVpbnQ2
NF90IHNpemUpOworICAgIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gZmx1
c2goV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyKTsKKyAgICBz
dGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGNsb3NlKFdlYkNvcmU6OkZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcik7CisKIHByaXZhdGU6CiAgICAgRXhwZWN0
ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I+IHJlcXVlc3RDcmVhdGVIYW5kbGUoSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCwgVHlw
ZSwgU3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSk7CiAKQEAgLTU3LDYgKzY0
LDcgQEAgcHJpdmF0ZToKICAgICBUeXBlIG1fdHlwZTsKICAgICBTdHJpbmcgbV9wYXRoOwogICAg
IFN0cmluZyBtX25hbWU7CisgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZUlkZW50aWZpZXI+IG1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmNwcApp
bmRleCAxYjdhNTFhMmY2ODg0MTVjMzk2YjViNDhmZGMwNWY5OTVmYzZkM2RlLi45NDhlZWI3YzE3
MTU1YTEzNzM4MGQ3YmY2ODIwNDEyODc0YTViN2M5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VN
YW5hZ2VyLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvci5oIgogI2luY2x1ZGUgIkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkuaCIK
KyNpbmNsdWRlIDx3dGYvU2NvcGUuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTg3LDE1
ICs4OCwyMSBAQCB2b2lkIEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlcjo6Y29ubmVjdGlvbkNsb3Nl
ZChJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEIGNvbm5lYwogewogICAgIEFTU0VSVCghUnVuTG9v
cDo6aXNNYWluKCkpOwogCi0gICAgYXV0byBoYW5kbGVzID0gbV9oYW5kbGVzQnlDb25uZWN0aW9u
LmZpbmQoY29ubmVjdGlvbik7Ci0gICAgaWYgKGhhbmRsZXMgPT0gbV9oYW5kbGVzQnlDb25uZWN0
aW9uLmVuZCgpKQorICAgIGF1dG8gY29ubmVjdGlvbkhhbmRsZXMgPSBtX2hhbmRsZXNCeUNvbm5l
Y3Rpb24uZmluZChjb25uZWN0aW9uKTsKKyAgICBpZiAoY29ubmVjdGlvbkhhbmRsZXMgPT0gbV9o
YW5kbGVzQnlDb25uZWN0aW9uLmVuZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBmb3IgKGF1
dG8gaGFuZGxlSWRlbnRpZmllciA6IGhhbmRsZXMtPnZhbHVlKSB7Ci0gICAgICAgIGF1dG8gaGFu
ZGxlID0gbV9oYW5kbGVzLnRha2UoaGFuZGxlSWRlbnRpZmllcik7Ci0gICAgICAgIG1fcmVnaXN0
cnkudW5yZWdpc3RlckhhbmRsZShoYW5kbGVJZGVudGlmaWVyKTsKKyAgICBhdXRvIGlkZW50aWZp
ZXJzID0gY29ubmVjdGlvbkhhbmRsZXMtPnZhbHVlOworICAgIGZvciAoYXV0byBpZGVudGlmaWVy
IDogaWRlbnRpZmllcnMpIHsKKyAgICAgICAgYXV0byBoYW5kbGUgPSBtX2hhbmRsZXMudGFrZShp
ZGVudGlmaWVyKTsKKyAgICAgICAgbV9yZWdpc3RyeS51bnJlZ2lzdGVySGFuZGxlKGlkZW50aWZp
ZXIpOwogICAgIH0KLSAgICBtX2hhbmRsZXNCeUNvbm5lY3Rpb24ucmVtb3ZlKGhhbmRsZXMpOwor
CisgICAgbV9sb2NrTWFwLnJlbW92ZUlmKFsmaWRlbnRpZmllcnNdKGF1dG8mIGVudHJ5KSB7Cisg
ICAgICAgIHJldHVybiBpZGVudGlmaWVycy5jb250YWlucyhlbnRyeS52YWx1ZSk7CisgICAgfSk7
CisKKyAgICBtX2hhbmRsZXNCeUNvbm5lY3Rpb24ucmVtb3ZlKGNvbm5lY3Rpb25IYW5kbGVzKTsK
IH0KIAogRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlcjo6Z2V0RGlyZWN0b3J5
KElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQgY29ubmVjdGlvbikKQEAgLTEwNSw0ICsxMTIsMjMg
QEAgRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW0KICAgICByZXR1cm4gY3JlYXRlSGFuZGxlKGNvbm5l
Y3Rpb24sIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpUeXBlOjpEaXJlY3RvcnksIFN0cmluZyB7
IG1fcGF0aCB9LCB7IH0sIHRydWUpOwogfQogCitib29sIEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdl
cjo6YWNxdWlyZUxvY2tGb3JGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCwgV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBpZiAobV9sb2NrTWFwLmNv
bnRhaW5zKHBhdGgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBtX2xvY2tNYXAuYWRk
KHBhdGgsIGlkZW50aWZpZXIpOworICAgIHJldHVybiB0cnVlOworfQorCitib29sIEZpbGVTeXN0
ZW1TdG9yYWdlTWFuYWdlcjo6cmVsZWFzZUxvY2tGb3JGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCwg
V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBp
ZiAoYXV0byBsb2NrZWRCeUlkZW50aWZpZXIgPSBtX2xvY2tNYXAuZ2V0KHBhdGgpOyBsb2NrZWRC
eUlkZW50aWZpZXIgPT0gaWRlbnRpZmllcikgeworICAgICAgICBtX2xvY2tNYXAucmVtb3ZlKHBh
dGgpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oCmlu
ZGV4IDhiNDM4YjJlOTNkZjRhODQ0N2MzYjc3NDBiYzU0Yzg3ZmNhNDMxOWYuLjFhZWJhOWRhZjc5
NjhjNjhkOGZlOGIzYmU3YjY3NTUyODNkNzYxMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuaAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5h
Z2VyLmgKQEAgLTQzLDEyICs0MywxNSBAQCBwdWJsaWM6CiAgICAgY29uc3QgU3RyaW5nJiBnZXRQ
YXRoKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyKTsKICAgICB2b2lkIGNvbm5l
Y3Rpb25DbG9zZWQoSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCk7CiAgICAgRXhwZWN0ZWQ8V2Vi
Q29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+
IGdldERpcmVjdG9yeShJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEKTsKKyAgICBib29sIGFjcXVp
cmVMb2NrRm9yRmlsZShjb25zdCBTdHJpbmcmIHBhdGgsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyKTsKKyAgICBib29sIHJlbGVhc2VMb2NrRm9yRmlsZShjb25zdCBTdHJpbmcm
IHBhdGgsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyKTsKIAogcHJpdmF0ZToK
ICAgICBTdHJpbmcgbV9wYXRoOwogICAgIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkm
IG1fcmVnaXN0cnk7CiAgICAgSGFzaE1hcDxJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlELCBIYXNo
U2V0PFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyPj4gbV9oYW5kbGVzQnlDb25u
ZWN0aW9uOwogICAgIEhhc2hNYXA8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIs
IHN0ZDo6dW5pcXVlX3B0cjxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZT4+IG1faGFuZGxlczsKKyAg
ICBIYXNoTWFwPFN0cmluZywgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXI+IG1f
bG9ja01hcDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5h
Z2VyLmNwcAppbmRleCA2N2FlYmE1MjA2YTY2MmM2MWQ5YjBlNTZkNTU5NTA5Y2IxMmE1MDI1Li4z
Njg2MTc0MjgxODBkNzg0NmIyZDYyZjA2MGU5OWU1ZGM3YTdkZDYzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyLmNwcApAQCAtMjI2LDUgKzIyNiw2MCBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlTWFu
YWdlcjo6cmVzb2x2ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlm
aQogICAgIGNvbXBsZXRpb25IYW5kbGVyKGhhbmRsZS0+cmVzb2x2ZSh0YXJnZXRJZGVudGlmaWVy
KSk7CiB9CiAKK3ZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpjcmVhdGVTeW5jQWNjZXNzSGFu
ZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit7CisgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CisKKyAgICBhdXRvIGhh
bmRsZSA9IG1fZmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeS0+Z2V0SGFuZGxlKGlkZW50
aWZpZXIpOworICAgIGlmICghaGFuZGxlKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRs
ZXIobWFrZVVuZXhwZWN0ZWQoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bikpOworCisg
ICAgY29tcGxldGlvbkhhbmRsZXIoaGFuZGxlLT5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlKCkpOwor
fQorCit2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Z2V0U2l6ZUZvckFjY2Vzc0hhbmRsZShX
ZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmll
ciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDx1aW50NjRfdCwgRmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIEFTU0VSVCghUnVuTG9v
cDo6aXNNYWluKCkpOworCisgICAgYXV0byBoYW5kbGUgPSBtX2ZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlUmVnaXN0cnktPmdldEhhbmRsZShpZGVudGlmaWVyKTsKKyAgICBpZiAoIWhhbmRsZSkKKyAg
ICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKG1ha2VVbmV4cGVjdGVkKEZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I6OlVua25vd24pKTsKKworICAgIGNvbXBsZXRpb25IYW5kbGVyKGhhbmRsZS0+
Z2V0U2l6ZShhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSk7Cit9CisKK3ZvaWQgTmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyOjp0cnVuY2F0ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigp
KTsKKworICAgIGF1dG8gaGFuZGxlID0gbV9maWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5
LT5nZXRIYW5kbGUoaWRlbnRpZmllcik7CisgICAgaWYgKCFoYW5kbGUpCisgICAgICAgIHJldHVy
biBjb21wbGV0aW9uSGFuZGxlcihGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duKTsKKwor
ICAgIGNvbXBsZXRpb25IYW5kbGVyKGhhbmRsZS0+dHJ1bmNhdGUoYWNjZXNzSGFuZGxlSWRlbnRp
Zmllciwgc2l6ZSkpOworfQorCit2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Zmx1c2hGb3JB
Y2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmll
ciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hh
bmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxGaWxl
U3lzdGVtU3RvcmFnZUVycm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgQVNTRVJU
KCFSdW5Mb29wOjppc01haW4oKSk7CisKKyAgICBhdXRvIGhhbmRsZSA9IG1fZmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGVSZWdpc3RyeS0+Z2V0SGFuZGxlKGlkZW50aWZpZXIpOworICAgIGlmICghaGFu
ZGxlKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoRmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcjo6VW5rbm93bik7CisKKyAgICBjb21wbGV0aW9uSGFuZGxlcihoYW5kbGUtPmZsdXNoKGFj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIpKTsKK30KKwordm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6
OmNsb3NlQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBh
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9u
YWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAg
IEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgYXV0byBoYW5kbGUgPSBtX2ZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnktPmdldEhhbmRsZShpZGVudGlmaWVyKTsKKyAgICBp
ZiAoIWhhbmRsZSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKEZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I6OlVua25vd24pOworCisgICAgY29tcGxldGlvbkhhbmRsZXIoaGFuZGxlLT5j
bG9zZShhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0
d29ya1N0b3JhZ2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3Jh
Z2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgKaW5kZXggMWI4MTBkZjc4ZDczZDJmZjA5ZTg0ZGUy
Y2NiMjJiYTA2MTgwMTFjOC4uYTgxODg1MWZmMTQ1Mzg2OGE3NGQxNzZmYjZjYjI4ZjIxYWIzMjMx
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdv
cmtTdG9yYWdlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3Rv
cmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUg
Ik9yaWdpblN0b3JhZ2VNYW5hZ2VyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DbGllbnRPcmlnaW4u
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIuaD4KICNp
bmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTY5LDYg
KzcwLDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXREaXJlY3RvcnlIYW5kbGUoSVBDOjpDb25u
ZWN0aW9uJiwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFN0cmluZyYmIG5h
bWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0
ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I+KT4mJik7CiAgICAgdm9pZCByZW1vdmVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcj4pPiYmKTsKICAgICB2b2lkIHJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yPik+JiYpOworICAgIHZvaWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxX
ZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I+KT4mJik7CisgICAgdm9pZCBnZXRTaXplRm9yQWNjZXNzSGFuZGxlKFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8dWlu
dDY0X3QsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CisgICAgdm9pZCB0cnVuY2F0ZUZv
ckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29y
ZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXplLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJv
cj4pPiYmKTsKKyAgICB2b2lkIGZsdXNoRm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVt
U3RvcmFnZUVycm9yPik+JiYpOworICAgIHZvaWQgY2xvc2VBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPEZp
bGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAKICAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Np
b25JRDsKICAgICBSZWY8V29ya1F1ZXVlPiBtX3F1ZXVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFn
ZU1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggNjJlNzQwM2NiYjcwMGFkOTZiYmViZTBmZWI4MjA1
YzgxNjIyNGZmNy4uNGZlYTI3NjVmZDkyYTk4MDYwY2QwNDAwNjJjNWU5NDU1YzgxOWZjMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9y
YWdlTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0zMiw0ICszMiwx
MCBAQAogICAgIEdldERpcmVjdG9yeUhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciBpZGVudGlmaWVyLCBTdHJpbmcgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSkg
LT4gKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJLaXQ6
OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMgV2FudHNDb25uZWN0aW9uCiAg
ICAgUmVtb3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRp
ZmllciwgU3RyaW5nIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHkpIC0+IChzdGQ6Om9wdGlv
bmFsPFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYwogICAgIFJl
c29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2Vi
Q29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgdGFyZ2V0SWRlbnRpZmllcikgLT4gKEV4
cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJl
c3VsdCkgQXN5bmMKKworICAgIENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPFdlYkNvcmU6OkZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV2ViS2l0OjpGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCisgICAgR2V0U2l6ZUZvckFjY2Vzc0hhbmRsZShXZWJD
b3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllcikg
LT4gKEV4cGVjdGVkPHVpbnQ2NF90LCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJl
c3VsdCkgQXN5bmMKKyAgICBUcnVuY2F0ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6
ZSkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1
bHQpIEFzeW5jCisgICAgRmx1c2hGb3JBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpIC0+IChzdGQ6Om9wdGlvbmFs
PFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYworICAgIENsb3Nl
QWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NI
YW5kbGVJZGVudGlmaWVyKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9y
YWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5CmluZGV4IGVkOTRhM2VlNTY2OGEzNDhiYzc2YWRiZDQyYjY1MDA3MWQxYjk1MWEu
LjU5NmIzZmFiNjU4NjZiZGVmNTgxMjgwZDkxMTYyMGMwNzRmNjdlZjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktp
dC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMjgyLDYgKzI4Miw3IEBAIGRlZiB0eXBl
c190aGF0X2Nhbm5vdF9iZV9mb3J3YXJkX2RlY2xhcmVkKCk6CiAgICAgICAgICdXZWJDb3JlOjpE
cmFnQXBwbGljYXRpb25GbGFncycsCiAgICAgICAgICdXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIn
LAogICAgICAgICAnV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXInLAorICAgICAg
ICAnV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyJywKICAgICAg
ICAgJ1dlYkNvcmU6OkZyYW1lSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHRHTEF0dHJpYnV0ZXMnLAogICAgICAgICAnV2ViQ29yZTo6SW1hZ2VEZWNvZGVySWRl
bnRpZmllcicsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24u
Y3BwCmluZGV4IGIwNTRjOTIzOGJkZDJmY2VjODEyOWIwMzA2YjUzYmJmYjFjN2RmOTMuLmZiNzNh
ODk1MmUwOWNmYTVkMDRlMzFlOTVlNDNjNDdjMzg3MGQ2ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIHZvaWQg
V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpnZXRGaWxlSGFuZGxlKFdlYkNvcmU6OkZp
bGVTeXN0ZW1IYW5kbGVJZGVuCiAKICAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpHZXRGaWxlSGFuZGxlKGlkZW50aWZp
ZXIsIG5hbWUsIGNyZWF0ZUlmTmVjZXNzYXJ5KSwgW25hbWUsIGNvbXBsZXRpb25IYW5kbGVyID0g
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKICAgICAg
ICAgaWYgKCFyZXN1bHQpCi0gICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2Vi
Q29yZTo6RXhjZXB0aW9uIHsgY29udmVydFRvRXhjZXB0aW9uQ29kZShyZXN1bHQuZXJyb3IoKSkg
fSk7CisgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoY29udmVydFRvRXhjZXB0
aW9uT3IocmVzdWx0LmVycm9yKCkpLnJlbGVhc2VFeGNlcHRpb24oKSk7CiAKICAgICAgICAgYXV0
byBpZGVudGlmaWVyID0gcmVzdWx0LnZhbHVlKCk7CiAgICAgICAgIGlmICghaWRlbnRpZmllci5p
c1ZhbGlkKCkpCkBAIC04NCw3ICs4NCw3IEBAIHZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpnZXREaXJlY3RvcnlIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsCiAKICAg
ICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyOjpHZXREaXJlY3RvcnlIYW5kbGUoaWRlbnRpZmllciwgbmFtZSwgY3JlYXRlSWZO
ZWNlc3NhcnkpLCBbbmFtZSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKV0oYXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAoIXJlc3VsdCkKLSAg
ICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBj
b252ZXJ0VG9FeGNlcHRpb25Db2RlKHJlc3VsdC5lcnJvcigpKSB9KTsKKyAgICAgICAgICAgIHJl
dHVybiBjb21wbGV0aW9uSGFuZGxlcihjb252ZXJ0VG9FeGNlcHRpb25PcihyZXN1bHQuZXJyb3Io
KSkucmVsZWFzZUV4Y2VwdGlvbigpKTsKIAogICAgICAgICBhdXRvIGlkZW50aWZpZXIgPSByZXN1
bHQudmFsdWUoKTsKICAgICAgICAgaWYgKCFpZGVudGlmaWVyLmlzVmFsaWQoKSkKQEAgLTk0LDE2
ICs5NCwxMyBAQCB2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Z2V0RGlyZWN0
b3J5SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbAogICAgIH0pOwogfQogCi12b2lkIFdl
YkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6cmVtb3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29s
IGRlbGV0ZVJlY3Vyc2l2ZWx5LCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246
OlJlbW92ZUVudHJ5Q2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpyZW1vdmVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRl
UmVjdXJzaXZlbHksIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Vm9pZENh
bGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCiAg
ICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJD
b3JlOjpVbmtub3duRXJyb3IsICJDb25uZWN0aW9uIGlzIGxvc3QiIH0pOwogCiAgICAgbV9jb25u
ZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdl
cjo6UmVtb3ZlRW50cnkoaWRlbnRpZmllciwgbmFtZSwgZGVsZXRlUmVjdXJzaXZlbHkpLCBbY29t
cGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byBlcnJvcikg
bXV0YWJsZSB7Ci0gICAgICAgIGlmIChlcnJvcikKLSAgICAgICAgICAgIHJldHVybiBjb21wbGV0
aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBjb252ZXJ0VG9FeGNlcHRpb25Db2RlKGVy
cm9yLnZhbHVlKCkpIH0pOwotCi0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CisgICAg
ICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihjb252ZXJ0VG9FeGNlcHRpb25PcihlcnJvcikp
OwogICAgIH0pOwogfQogCkBAIC0xMTQsMTAgKzExMSw2NiBAQCB2b2lkIFdlYkZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6cmVzb2x2ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllcgogCiAgICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5l
dHdvcmtTdG9yYWdlTWFuYWdlcjo6UmVzb2x2ZShpZGVudGlmaWVyLCBvdGhlcklkZW50aWZpZXIp
LCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byBy
ZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgICAgIHJldHVy
biBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBjb252ZXJ0VG9FeGNlcHRp
b25Db2RlKHJlc3VsdC5lcnJvcigpKSB9KTsKKyAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9u
SGFuZGxlcihjb252ZXJ0VG9FeGNlcHRpb25PcihyZXN1bHQuZXJyb3IoKSkucmVsZWFzZUV4Y2Vw
dGlvbigpKTsKKworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdC52YWx1
ZSgpKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50
aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0QWNjZXNzSGFu
ZGxlQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoIW1fY29ubmVjdGlv
bikKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7
IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5lY3Rpb24gaXMgbG9zdCIgfSk7CisKKyAgICBt
X2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VN
YW5hZ2VyOjpDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKGlkZW50aWZpZXIpLCBbY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byByZXN1bHQpIG11dGFibGUg
eworICAgICAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFu
ZGxlcihjb252ZXJ0VG9FeGNlcHRpb25PcihyZXN1bHQuZXJyb3IoKSkucmVsZWFzZUV4Y2VwdGlv
bigpKTsKIAogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdC52YWx1ZSgp
KSk7CiAgICAgfSk7CiB9CiAKK3ZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpn
ZXRTaXplKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdl
YkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyLCBJbnRlZ2VyQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBp
ZiAoIW1fY29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNv
cmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5lY3Rpb24gaXMgbG9z
dCIgfSk7CisKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpHZXRTaXplRm9yQWNjZXNzSGFuZGxlKGlkZW50aWZpZXIs
IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgICAgICBpZiAoIXJl
c3VsdCkKKyAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihjb252ZXJ0VG9FeGNl
cHRpb25PcihyZXN1bHQuZXJyb3IoKSkucmVsZWFzZUV4Y2VwdGlvbigpKTsKKworICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihyZXN1bHQudmFsdWUoKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2Vi
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjp0cnVuY2F0ZShXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSwg
Vm9pZENhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFtX2Nvbm5lY3Rp
b24pCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24g
eyBXZWJDb3JlOjpVbmtub3duRXJyb3IsICJDb25uZWN0aW9uIGlzIGxvc3QiIH0pOworCisgICAg
bV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdl
TWFuYWdlcjo6VHJ1bmNhdGVGb3JBY2Nlc3NIYW5kbGUoaWRlbnRpZmllciwgYWNjZXNzSGFuZGxl
SWRlbnRpZmllciwgc2l6ZSksIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpXShhdXRvIGVycm9yKSBtdXRhYmxlIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoY29udmVydFRvRXhjZXB0aW9uT3IoZXJyb3IpKTsKKyAgICB9KTsKK30KKwordm9pZCBXZWJG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmZsdXNoKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBWb2lkQ2FsbGJhY2smJiBjb21w
bGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoIW1fY29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJu
IGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25F
cnJvciwgIkNvbm5lY3Rpb24gaXMgbG9zdCIgfSk7CisKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpGbHVzaEZvckFj
Y2Vzc0hhbmRsZShpZGVudGlmaWVyLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSwgW2NvbXBsZXRp
b25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8gZXJyb3IpIG11dGFi
bGUgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjb252ZXJ0VG9FeGNlcHRpb25PcihlcnJv
cikpOworICAgIH0pOworfQorCit2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6
Y2xvc2UoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2Vi
Q29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIsIFZvaWRDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmICgh
bV9jb25uZWN0aW9uKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6
RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0IiB9
KTsKKworICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3
b3JrU3RvcmFnZU1hbmFnZXI6OkNsb3NlQWNjZXNzSGFuZGxlKGlkZW50aWZpZXIsIGFjY2Vzc0hh
bmRsZUlkZW50aWZpZXIpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKV0oYXV0byBlcnJvcikgbXV0YWJsZSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KGNvbnZlcnRUb0V4Y2VwdGlvbk9yKGVycm9yKSk7CisgICAgfSk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5o
CmluZGV4IGI2MDFiZTY0MzUzZGFmYzc3N2M2YmNlNDJiMWU5ZjI5MTM5MjMwYzIuLjAyODRjOWJm
Mzg4MmIyY2Y0YzFhNjYzM2FmZWY0MjdlNmJhNzk5OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTUxLDkgKzUxLDE1IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBpc1NhbWVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwg
V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6U2FtZUVudHJ5Q2FsbGJhY2smJik7CiAgICAgdm9pZCBnZXRGaWxl
SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbjo6R2V0SGFuZGxlQ2FsbGJhY2smJik7CiAgICAgdm9pZCBnZXREaXJlY3RvcnlI
YW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
bmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOjpHZXRIYW5kbGVDYWxsYmFjayYmKTsKLSAgICB2b2lkIHJlbW92ZUVudHJ5KFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJv
b2wgZGVsZXRlUmVjdXJzaXZlbHksIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bjo6UmVtb3ZlRW50cnlDYWxsYmFjayYmKTsKKyAgICB2b2lkIHJlbW92ZUVudHJ5KFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVs
ZXRlUmVjdXJzaXZlbHksIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Vm9p
ZENhbGxiYWNrJiYpOwogICAgIHZvaWQgcmVzb2x2ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6
OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6UmVzb2x2ZUNhbGxiYWNrJiYpOwogCisgICAg
dm9pZCBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBX
ZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEFjY2Vzc0hhbmRsZUNhbGxi
YWNrJiYpIGZpbmFsOworICAgIHZvaWQgZ2V0U2l6ZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb246OkludGVnZXJDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lk
IHRydW5jYXRlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIsIHVpbnQ2NF90IHNpemUsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbjo6Vm9pZENhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgZmx1c2goRmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRp
ZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2sm
JikgZmluYWw7CisgICAgdm9pZCBjbG9zZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmKSBmaW5hbDsKKwogICAgIFJlZlB0cjxJUEM6
OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9yYWdlQ29ubmVjdGlvbi5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3RvcmFnZUNvbm5lY3Rp
b24uY3BwCmluZGV4IDJhY2I1ZmFhZjNmNDZkN2Y4NGRiYmJiODczMzJkMzM2NTQ5MDM3NmQuLmUw
NTY5OGYzNGFmMzE0MTAxMmUzYWZkMjZmMTZlZWJiMGFmMTIyNGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9yYWdlQ29ubmVjdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlN0b3Jh
Z2VDb25uZWN0aW9uLmNwcApAQCAtNTYsNyArNTYsNyBAQCB2b2lkIFdlYlN0b3JhZ2VDb25uZWN0
aW9uOjpmaWxlU3lzdGVtR2V0RGlyZWN0b3J5KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYg
bwogICAgIGF1dG8mIGNvbm5lY3Rpb24gPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCk7CiAgICAgY29ubmVjdGlvbi5z
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6RmlsZVN5
c3RlbUdldERpcmVjdG9yeShvcmlnaW4pLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKV0oYXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAoIXJl
c3VsdCkKLSAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNl
cHRpb24geyBjb252ZXJ0VG9FeGNlcHRpb25Db2RlKHJlc3VsdC5lcnJvcigpKSB9KTsKKyAgICAg
ICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihjb252ZXJ0VG9FeGNlcHRpb25PcihyZXN1
bHQuZXJyb3IoKSkucmVsZWFzZUV4Y2VwdGlvbigpKTsKIAogICAgICAgICBhdXRvIGlkZW50aWZp
ZXIgPSByZXN1bHQudmFsdWUoKTsKICAgICAgICAgaWYgKCFpZGVudGlmaWVyLmlzVmFsaWQoKSkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhYjdmZjkyMmYwZmVlZGRmNWYwNjI5YWI3ZjI4M2RmNzU4ZDBkZjVlLi5hODdkMDYw
NWNiYTIwYzljNDEwMzcwM2FiN2ZlMzg5OTk2ZGIzNDAyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMjEtMTAtMDUgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAg
QWRkIHN1cHBvcnQgZm9yIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzExODUKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzgzODQ3ODU5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3Jlc291cmNlcy9zeW5jLWFj
Y2Vzcy1oYW5kbGUtYmFzaWNzLmpzOiBBZGRlZC4KKyAgICAgICAgKGZpbmlzaFRlc3QpOgorICAg
ICAgICAoZ2V0RGlyZWN0b3J5KToKKyAgICAgICAgKiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mv
c3luYy1hY2Nlc3MtaGFuZGxlLWJhc2ljcy13b3JrZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLWJhc2lj
cy13b3JrZXIuaHRtbDogQWRkZWQuCisKIDIwMjEtMTAtMDQgIENhbWVyb24gTWNDb3JtYWNrICA8
aGV5Y2FtQGFwcGxlLmNvbT4KIAogICAgICAgICBDaG9vc2UgYW4gYXBwcm9wcmlhdGUgY29sb3Ig
c3BhY2Ugd2hlbiBjb252ZXJ0aW5nIGFuIFNWRyBpbWFnZSBpbnRvIGEgTmF0aXZlSW1hZ2UgZm9y
IGNhbnZhcyBkcmF3SW1hZ2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IGE3NDI3
ZGJjYjBhOGZhMzk0YjQyOTM4Y2U3NDAwMDA4NGYxNTZjMzkuLjM0YzQ1NDg0YjgwOWRkNmEyYTJj
ZDQ0M2E5MzBhNzE1ZWU1MmU3ZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEzIEBACisyMDIxLTEwLTA1ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29t
PgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMTg1Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS84Mzg0Nzg1OT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9maWxlLXN5c3Rl
bS1hY2Nlc3Mvc2FuZGJveGVkX0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLXN5bmMtYWNjZXNzLWhhbmRs
ZS1sb2NrLmh0dHBzLnRlbnRhdGl2ZS53b3JrZXItZXhwZWN0ZWQudHh0OgorCiAyMDIxLTEwLTA0
ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgU3Rv
cCBwYXJzaW5nIGNvbnRleHQtc2Vuc2l0aXZlIGNvbG9ycyBpbiBvdmVycmlkZS1jb2xvcgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9maWxl
LXN5c3RlbS1hY2Nlc3Mvc2FuZGJveGVkX0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLXN5bmMtYWNjZXNz
LWhhbmRsZS1sb2NrLmh0dHBzLnRlbnRhdGl2ZS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9maWxlLXN5c3RlbS1hY2Nlc3Mv
c2FuZGJveGVkX0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLXN5bmMtYWNjZXNzLWhhbmRsZS1sb2NrLmh0
dHBzLnRlbnRhdGl2ZS53b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IGI0NjI4YTdkZjIyZGZlODhh
N2IzNzEyZmZiMzY3ZGZjY2VlZTg3MDQuLjdkYWRjMmQ0ZjA2ZDg0NGEyMTJmNjQwNGMwZDFhYjlm
NTYzNzBjYjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmlsZS1zeXN0ZW0tYWNjZXNzL3NhbmRib3hlZF9GaWxlU3lzdGVtRmlsZUhhbmRs
ZS1zeW5jLWFjY2Vzcy1oYW5kbGUtbG9jay5odHRwcy50ZW50YXRpdmUud29ya2VyLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zp
bGUtc3lzdGVtLWFjY2Vzcy9zYW5kYm94ZWRfRmlsZVN5c3RlbUZpbGVIYW5kbGUtc3luYy1hY2Nl
c3MtaGFuZGxlLWxvY2suaHR0cHMudGVudGF0aXZlLndvcmtlci1leHBlY3RlZC50eHQKQEAgLTEs
NCArMSw0IEBACiAKLUZBSUwgVGhlcmUgY2FuIG9ubHkgYmUgb25lIG9wZW4gYWNjZXNzIGhhbmRs
ZSBhdCBhbnkgZ2l2ZW4gdGltZSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0
aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IGZpbGVIYW5kbGUuY3JlYXRlU3luY0FjY2Vzc0hh
bmRsZSBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdmaWxlSGFuZGxlLmNyZWF0ZVN5bmNBY2Nlc3NI
YW5kbGUoKScsICdmaWxlSGFuZGxlLmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUnIGlzIHVuZGVmaW5l
ZCkiCi1GQUlMIEFuIGFjY2VzcyBoYW5kbGUgZnJvbSBvbmUgZmlsZSBkb2VzIG5vdCBpbnRlcmZl
cmUgd2l0aCB0aGUgY3JlYXRpb24gb2YgYW4gYWNjZXNzIGhhbmRsZSBvbiBhbm90aGVyIGZpbGUg
cHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlw
ZUVycm9yOiBmb29GaWxlSGFuZGxlLmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUgaXMgbm90IGEgZnVu
Y3Rpb24uIChJbiAnZm9vRmlsZUhhbmRsZS5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlKCknLCAnZm9v
RmlsZUhhbmRsZS5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlJyBpcyB1bmRlZmluZWQpIgorUEFTUyBU
aGVyZSBjYW4gb25seSBiZSBvbmUgb3BlbiBhY2Nlc3MgaGFuZGxlIGF0IGFueSBnaXZlbiB0aW1l
CitQQVNTIEFuIGFjY2VzcyBoYW5kbGUgZnJvbSBvbmUgZmlsZSBkb2VzIG5vdCBpbnRlcmZlcmUg
d2l0aCB0aGUgY3JlYXRpb24gb2YgYW4gYWNjZXNzIGhhbmRsZSBvbiBhbm90aGVyIGZpbGUKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3Jlc291cmNl
cy9zeW5jLWFjY2Vzcy1oYW5kbGUtYmFzaWNzLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxl
c3lzdGVtYWNjZXNzL3Jlc291cmNlcy9zeW5jLWFjY2Vzcy1oYW5kbGUtYmFzaWNzLmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjk2NzEyNWE0NmRjNmI2ZWMzZmNmZWYxMzk0YTg2MDhjODY1Mjg3MmMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3MvcmVzb3VyY2Vz
L3N5bmMtYWNjZXNzLWhhbmRsZS1iYXNpY3MuanMKQEAgLTAsMCArMSw4MSBAQAoraWYgKHRoaXMu
aW1wb3J0U2NyaXB0cykgeworICAgIGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LmpzJyk7Cit9CisKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIGJhc2ljIGZ1
bnRpb25hbGl0aWVzIG9mIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLiIpOworCit2YXIgcm9v
dEhhbmRsZSwgZmlsZUhhbmRsZSwgYWNjZXNzSGFuZGxlMSwgYWNjZXNzSGFuZGxlMiwgY3JlYXRl
RXJyb3I7CisKK2Z1bmN0aW9uIGZpbmlzaFRlc3QoZXJyb3IpCit7CisgICAgaWYgKGVycm9yKSB7
CisgICAgICAgIHRlc3RGYWlsZWQoZXJyb3IpOworICAgIH0KKyAgICBmaW5pc2hKU1Rlc3QoKTsK
K30KKworZnVuY3Rpb24gZ2V0RGlyZWN0b3J5KCkgeworICAgIG5hdmlnYXRvci5zdG9yYWdlLmdl
dERpcmVjdG9yeSgpLnRoZW4oKGhhbmRsZSkgPT4geworICAgICAgICByb290SGFuZGxlID0gaGFu
ZGxlOworICAgICAgICBjcmVhdGVGaWxlSGFuZGxlKHJvb3RIYW5kbGUpOworICAgIH0pLmNhdGNo
KChlcnJvcikgPT4geworICAgICAgICBmaW5pc2hUZXN0KGVycm9yKTsKKyAgICB9KTsKK30KKwor
ZnVuY3Rpb24gY3JlYXRlRmlsZUhhbmRsZShmcm9tSGFuZGxlKSB7CisgICAgZnJvbUhhbmRsZS5n
ZXRGaWxlSGFuZGxlKCJzeW5jLWFjY2Vzcy1oYW5kbGUudHh0IiwgeyAiY3JlYXRlIiA6IHRydWUg
fSkudGhlbigoaGFuZGxlKSA9PiB7CisgICAgICAgIGZpbGVIYW5kbGUgPSBoYW5kbGU7CisgICAg
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZmlsZUhhbmRsZS5uYW1lIiwgInN5bmMtYWNjZXNz
LWhhbmRsZS50eHQiKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJmaWxlSGFuZGxl
LmtpbmQiLCAiZmlsZSIpOworICAgICAgICBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKGZpbGVIYW5k
bGUpOworICAgIH0pLmNhdGNoKChlcnJvcikgPT4geworICAgICAgICBmaW5pc2hUZXN0KGVycm9y
KTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShmcm9tSGFu
ZGxlKSB7CisgICAgZnJvbUhhbmRsZS5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlKCkudGhlbigoaGFu
ZGxlKSA9PiB7CisgICAgICAgIGFjY2Vzc0hhbmRsZTEgPSBoYW5kbGU7CisgICAgICAgIGRlYnVn
KCJhY2Nlc3NIYW5kbGUxIGlzIGNyZWF0ZWQiKTsKKyAgICAgICAgZ2V0U2l6ZShhY2Nlc3NIYW5k
bGUxKTsKKyAgICB9KS5jYXRjaCgoZXJyb3IpID0+IHsKKyAgICAgICAgZmluaXNoVGVzdChlcnJv
cik7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIGdldFNpemUoYWNjZXNzSGFuZGxlKSB7CisgICAg
YWNjZXNzSGFuZGxlLmdldFNpemUoKS50aGVuKChyZXN1bHQpID0+IHsKKyAgICAgICAgc2l6ZSA9
IHJlc3VsdDsKKyAgICAgICAgc2hvdWxkQmUoInNpemUiLCAiMCIpOworICAgICAgICBjcmVhdGVT
ZWNvbmRTeW5jQWNlc3NIYW5kbGUoZmlsZUhhbmRsZSk7CisgICAgfSkuY2F0Y2goKGVycm9yKSA9
PiB7CisgICAgICAgIGZpbmlzaFRlc3QoZXJyb3IpOworICAgIH0pOworfQorCitmdW5jdGlvbiBj
cmVhdGVTZWNvbmRTeW5jQWNlc3NIYW5kbGUoZnJvbUhhbmRsZSkgeworICAgIGZyb21IYW5kbGUu
Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpLnRoZW4oKGhhbmRsZSkgPT4geworICAgICAgICBhY2Nl
c3NIYW5kbGUyID0gaGFuZGxlOworICAgICAgICAvLyBTZWNvbmQgY3JlYXRpb24gc2hvdWxkIHN1
Y2NlZWQuCisgICAgICAgIGRlYnVnKCJhY2Nlc3NIYW5kbGUyIGlzIGNyZWF0ZWQiKTsKKyAgICAg
ICAgZmluaXNoVGVzdCgpOworICAgIH0pLmNhdGNoKChlcnJvcikgPT4geworICAgICAgICAvLyBG
aXJzdCBjcmVhdGlvbiBzaG91bGQgZmFpbCBhcyB0aGVyZSBpcyBhbiBhY3RpdmUgaGFuZGxlLgor
ICAgICAgICBjcmVhdGVFcnJvciA9IGVycm9yOworICAgICAgICBkZWJ1ZygiYWNjZXNzSGFuZGxl
MiBjYW5ub3QgYmUgY3JlYXRlZCIpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImNy
ZWF0ZUVycm9yLnRvU3RyaW5nKCkiLCAiSW52YWxpZFN0YXRlRXJyb3I6IFRoZSBvYmplY3QgaXMg
aW4gYW4gaW52YWxpZCBzdGF0ZS4iKTsKKyAgICAgICAgY2xvc2UoKTsKKyAgICB9KTsKK30KKwor
ZnVuY3Rpb24gY2xvc2UoKSB7CisgICAgYWNjZXNzSGFuZGxlMS5jbG9zZSgpLnRoZW4oKHJlc3Vs
dCkgPT4geworICAgICAgICBkZWJ1ZygiYWNjZXNzSGFuZGxlMSBpcyBjbG9zZWQiKTsKKyAgICAg
ICAgY3JlYXRlU2Vjb25kU3luY0FjZXNzSGFuZGxlKGZpbGVIYW5kbGUpOworICAgIH0pLmNhdGNo
KChlcnJvcikgPT4geworICAgICAgICBmaW5pc2hUZXN0KGVycm9yKTsKKyAgICB9KTsKK30KKwor
Z2V0RGlyZWN0b3J5KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0
ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLWJhc2ljcy13b3JrZXItZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1i
YXNpY3Mtd29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NzRmNWQ3MTU1NzMwN2U0YmQx
NGMxNDZiYTkzYWJkNTJkYjlhNGY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1iYXNpY3Mtd29ya2VyLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitbV29ya2VyXSBUaGlzIHRlc3QgY2hlY2tzIGJh
c2ljIGZ1bnRpb25hbGl0aWVzIG9mIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworU3RhcnRpbmcgd29ya2VyOiByZXNvdXJjZXMvc3lu
Yy1hY2Nlc3MtaGFuZGxlLWJhc2ljcy5qcworUEFTUyBbV29ya2VyXSBmaWxlSGFuZGxlLm5hbWUg
aXMgInN5bmMtYWNjZXNzLWhhbmRsZS50eHQiCitQQVNTIFtXb3JrZXJdIGZpbGVIYW5kbGUua2lu
ZCBpcyAiZmlsZSIKK1tXb3JrZXJdIGFjY2Vzc0hhbmRsZTEgaXMgY3JlYXRlZAorUEFTUyBbV29y
a2VyXSBzaXplIGlzIDAKK1tXb3JrZXJdIGFjY2Vzc0hhbmRsZTIgY2Fubm90IGJlIGNyZWF0ZWQK
K1BBU1MgW1dvcmtlcl0gY3JlYXRlRXJyb3IudG9TdHJpbmcoKSBpcyAiSW52YWxpZFN0YXRlRXJy
b3I6IFRoZSBvYmplY3QgaXMgaW4gYW4gaW52YWxpZCBzdGF0ZS4iCitbV29ya2VyXSBhY2Nlc3NI
YW5kbGUxIGlzIGNsb3NlZAorW1dvcmtlcl0gYWNjZXNzSGFuZGxlMiBpcyBjcmVhdGVkCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRs
ZS1iYXNpY3Mtd29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nl
c3Mvc3luYy1hY2Nlc3MtaGFuZGxlLWJhc2ljcy13b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZmVj
MzZhNTk2MGI0YWFhMjFhMmY4MGFkMTFjZWQ0YjdlY2VkOWQ1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1i
YXNpY3Mtd29ya2VyLmh0bWwKQEAgLTAsMCArMSw5IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHNjcmlwdD4KK3dvcmtlciA9IHN0YXJ0V29ya2VyKCdyZXNvdXJjZXMvc3luYy1hY2Nl
c3MtaGFuZGxlLWJhc2ljcy5qcycpOzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440224</attachid>
            <date>2021-10-05 09:33:31 -0700</date>
            <delta_ts>2021-10-05 10:04:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231185-20211005093330.patch</filename>
            <type>text/plain</type>
            <size>97349</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDZkZDE4NzQwMTRhN2E1N2JhZjZjZWFm
MGZmMGIyZGNiNTUxZTEzNjIuLmIzZmQ5NTJmZmQ3ZjViY2E3ZDUwOGNiMmNhMGM5YWQ4ZmE5NWZj
ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEtMTAtMDUgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzExODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzODQ3ODU5PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNl
cy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sOgorICAgICAgICAqIHd0Zi9GaWxlU3lz
dGVtLmg6CisgICAgICAgICogd3RmL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3BwOgorICAgICAgICAo
V1RGOjpGaWxlU3lzdGVtSW1wbDo6Zmx1c2hGaWxlKToKKyAgICAgICAgKiB3dGYvcG9zaXgvRmls
ZVN5c3RlbVBPU0lYLmNwcDoKKyAgICAgICAgKFdURjo6RmlsZVN5c3RlbUltcGw6OmZsdXNoRmls
ZSk6CisgICAgICAgICogd3RmL3dpbi9GaWxlU3lzdGVtV2luLmNwcDoKKyAgICAgICAgKFdURjo6
RmlsZVN5c3RlbUltcGw6OmZsdXNoRmlsZSk6CisKIDIwMjEtMTAtMDQgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgU1BJIHRvIGxhdW5jaCBhIHNlcnZpY2Ug
c2VydmljZSB3b3JrZXIgaW4gYSBXS1dlYlZpZXcgYW5kIGV4cG9zZSBzZXJ2aWNlIHdvcmtlciB0
byBpbmplY3RlZCBidW5kbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5NDU3YzRlMjAxOGM0YTBhYmU2ODg3MmJl
NGYxMTM1MGQxNDllMDJmLi4xNzE1MmFmMDQwYzZjZTUzZjAxZWI5MTRhODM2NTgwZWJmMjhhMzVi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjAgQEAKKzIwMjEtMTAtMDUgIFNpaHVpIExpdSAgPHNp
aHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzExODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzODQ3ODU5PgorCisgICAg
ICAgIEltcGxlbWVudCBiYXNpYyBzdXBwb3J0IGZvciBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZSBhcyBwcm9wb3NhbDoKKyAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL1dJQ0cvZmlsZS1zeXN0
ZW0tYWNjZXNzL2Jsb2IvbWFpbi9BY2Nlc3NIYW5kbGUubWQKKworICAgICAgICBGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZSBjYW4gYmUgY3JlYXRlZCB2aWEgRmlsZVN5c3RlbUZpbGVIYW5kbGUs
IGFuZCBpdCBjb21tdWljYXRlcyB3aXRoIGJhY2tlbmQgdmlhIAorICAgICAgICBGaWxlU3lzdGVt
RmlsZUhhbmRsZS4KKworICAgICAgICBUZXN0OiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3lu
Yy1hY2Nlc3MtaGFuZGxlLWJhc2ljcy13b3JrZXIuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0
cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAg
ICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVk
U291cmNlcy5tYWtlOgorICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogTW9kdWxl
cy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpnZXRTaXplKToKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjp0cnVuY2F0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Zmx1c2gpOgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZVN5c3RlbUZpbGVIYW5kbGU6OmNsb3NlKToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaWRsOgorICAgICAgICAqIE1vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBN
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OkZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlOjp+RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2Vi
Q29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OnRydW5jYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpnZXRTaXplKToKKyAgICAgICAgKFdl
YkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpmbHVzaCk6CisgICAgICAgIChXZWJD
b3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y2xvc2UpOgorICAgICAgICAoV2ViQ29y
ZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmRpZENsb3NlKToKKyAgICAgICAgKiBNb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaDogQWRkZWQu
CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oOiBBZGRlZC4KKyAgICAgICAgKiBN
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bjo6c2NvcGVDbG9zZWQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOjpyZW1vdmVFbnRyeSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmRpZENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjb21wbGV0
ZUludGVnZXJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb246OmNvbXBsZXRlVm9pZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6
OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRs
ZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246
OmdldFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjp0cnVuY2F0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb246OmZsdXNoKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y2xvc2UpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpkaWRSZW1vdmVFbnRyeSk6IERlbGV0ZWQuCisgICAg
ICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbi5oOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlQnVp
bHRpbk5hbWVzLmg6CisKIDIwMjEtMTAtMDQgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxk
QGFwcGxlLmNvbT4KIAogICAgICAgICBTdG9wIHBhcnNpbmcgY29udGV4dC1zZW5zaXRpdmUgY29s
b3JzIGluIG92ZXJyaWRlLWNvbG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY4NWRmM2YwYWUzYjlmMGM2M2FhN2M5
MTNlODI2MjcyZmE1ZmEzZTMuLjJhNjc5YjhiNmRiYTM1ZDkyNWVkYzVjMDJiMmE5MWE0OWUzMDg5
NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTMgQEAKKzIwMjEtMTAtMDUgIFNpaHVpIExpdSAgPHNp
aHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzExODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzODQ3ODU5PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJlbnRseSB3ZSBv
bmx5IGFsbG93IG9uZSBvcGVuIGFjY2VzcyBoYW5kbGUgb24gb25lIGZpbGUuIFNlY29uZCBhY2Nl
c3MgaGFuZGxlIGNhbiBiZSBjcmVhdGVkIGFmdGVyIHRoZSBmaXJzdAorICAgICAgICBpcyBjbG9z
ZWQuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3IuaDoKKyAgICAgICAgKFdlYktpdDo6Y29udmVydFRvRXhjZXB0aW9uT3IpOgorICAgICAg
ICAoV2ViS2l0Ojpjb252ZXJ0VG9FeGNlcHRpb25Db2RlKTogRGVsZXRlZC4KKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5k
bGUpOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Z2V0U2l6ZSk6
CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjp0cnVuY2F0ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpmbHVzaCk6CisgICAgICAg
IChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpjbG9zZSk6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOjpjb25uZWN0aW9uQ2xvc2Vk
KToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOjphY3F1aXJlTG9j
a0ZvckZpbGUpOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXI6OnJl
bGVhc2VMb2NrRm9yRmlsZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxl
U3lzdGVtU3RvcmFnZU1hbmFnZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdl
L05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTdG9y
YWdlTWFuYWdlcjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtTdG9yYWdlTWFuYWdlcjo6Z2V0U2l6ZUZvckFjY2Vzc0hhbmRsZSk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6dHJ1bmNhdGVGb3JBY2Nlc3NIYW5kbGUpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmZsdXNoRm9yQWNjZXNzSGFu
ZGxlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpjbG9zZUFjY2Vz
c0hhbmRsZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFn
ZU1hbmFnZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9y
YWdlTWFuYWdlci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdl
cy5weToKKyAgICAgICAgKHR5cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpnZXRGaWxlSGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpnZXREaXJlY3RvcnlIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnJlbW92ZUVudHJ5KToKKyAgICAgICAgKFdl
YktpdDo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpyZXNvbHZlKToKKyAgICAgICAg
KFdlYktpdDo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGVTeW5jQWNjZXNz
SGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OjpnZXRTaXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uOjp0cnVuY2F0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbjo6Zmx1c2gpOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OmNsb3NlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViU3RvcmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJTdG9yYWdlQ29ubmVjdGlvbjo6ZmlsZVN5c3RlbUdldERpcmVjdG9yeSk6CisKIDIwMjEtMTAt
MDQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgU1BJIHRv
IGxhdW5jaCBhIHNlcnZpY2Ugc2VydmljZSB3b3JrZXIgaW4gYSBXS1dlYlZpZXcgYW5kIGV4cG9z
ZSBzZXJ2aWNlIHdvcmtlciB0byBpbmplY3RlZCBidW5kbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sIGIv
U291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFs
LnlhbWwKaW5kZXggMTE2ZjdkOTNhZTY3MDMxMzkzOGFhMDAzZGNlMjIwN2FiNjY2YmEzMC4uNTRh
NDk2OTliMGQ2OTFlNDJkYmE0ZWI1NjRiYjQxMDgwYzU5YjBlMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwK
KysrIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJp
bWVudGFsLnlhbWwKQEAgLTI2LDYgKzI2LDE4IEBACiAjIFRoZXkgbXVzdCBpbmNsdWRlIGEgaHVt
YW5SZWFkYWJsZU5hbWUgYW5kIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbi4gVGhpcyBpcwogIyAg
IHRoZSB0ZXh0IGV4cG9zZWQgdG8gdGhlIHVzZXIgZnJvbSB0aGUgV2ViS2l0IGNsaWVudC4KIAor
QWNjZXNzSGFuZGxlRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBodW1hblJlYWRhYmxlTmFtZTog
IkFjY2Vzc0hhbmRsZSBBUEkiCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkVuYWJsZSBB
Y2Nlc3NIYW5kbGUgQVBJIgorICBkZWZhdWx0VmFsdWU6CisgICAgV2ViS2l0TGVnYWN5OgorICAg
ICAgZGVmYXVsdDogZmFsc2UKKyAgICBXZWJLaXQ6CisgICAgICBkZWZhdWx0OiBmYWxzZQorICAg
IFdlYkNvcmU6CisgICAgICBkZWZhdWx0OiBmYWxzZQorCiBBY2Nlc3NpYmlsaXR5T2JqZWN0TW9k
ZWxFbmFibGVkOgogICB0eXBlOiBib29sCiAgIGh1bWFuUmVhZGFibGVOYW1lOiAiQWNjZXNzaWJp
bGl0eSBPYmplY3QgTW9kZWwiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9GaWxlU3lzdGVt
LmggYi9Tb3VyY2UvV1RGL3d0Zi9GaWxlU3lzdGVtLmgKaW5kZXggYzQ1MDFkMTRhNzQyYWEyMWZh
NmRjN2E3M2Y4MzA5ZWM2YTg3ZjRkNS4uYjEwNzM3MDY5OGUxYWQxZGE3OTRhN2U0NjZjYzAwNzEy
YTdkODY2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5oCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uaApAQCAtMTU0LDYgKzE1NCw3IEBAIFdURl9FWFBPUlRf
UFJJVkFURSB2b2lkIGNsb3NlRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUmKTsKIC8vIFJldHVybnMg
dGhlIHJlc3VsdGluZyBvZmZzZXQgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoZSBmaWxlIGlmIHN1
Y2Nlc3NmdWwsIC0xIG90aGVyd2lzZS4KIFdURl9FWFBPUlRfUFJJVkFURSBsb25nIGxvbmcgc2Vl
a0ZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlLCBsb25nIGxvbmcgb2Zmc2V0LCBGaWxlU2Vla09yaWdp
bik7CiBXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCB0cnVuY2F0ZUZpbGUoUGxhdGZvcm1GaWxlSGFu
ZGxlLCBsb25nIGxvbmcgb2Zmc2V0KTsKK1dURl9FWFBPUlRfUFJJVkFURSBib29sIGZsdXNoRmls
ZShQbGF0Zm9ybUZpbGVIYW5kbGUpOwogLy8gUmV0dXJucyBudW1iZXIgb2YgYnl0ZXMgYWN0dWFs
bHkgcmVhZCBpZiBzdWNjZXNzZnVsLCAtMSBvdGhlcndpc2UuCiBXVEZfRVhQT1JUX1BSSVZBVEUg
aW50IHdyaXRlVG9GaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSwgY29uc3Qgdm9pZCogZGF0YSwgaW50
IGxlbmd0aCk7CiAvLyBSZXR1cm5zIG51bWJlciBvZiBieXRlcyBhY3R1YWxseSB3cml0dGVuIGlm
IHN1Y2Nlc3NmdWwsIC0xIG90aGVyd2lzZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2ds
aWIvRmlsZVN5c3RlbUdsaWIuY3BwIGIvU291cmNlL1dURi93dGYvZ2xpYi9GaWxlU3lzdGVtR2xp
Yi5jcHAKaW5kZXggNTQ2MjQ0YzcwNDEwODRjYjRiNDJlOWYwYWFlYmE4YTI2MjkwM2ZkMy4uZjgx
MjdmMGJhMGY0NGU0OWVmMjg1OWUxNTE4MDA4YzFiMzA0ODQxMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAKKysrIGIvU291cmNlL1dURi93dGYvZ2xp
Yi9GaWxlU3lzdGVtR2xpYi5jcHAKQEAgLTIxMyw2ICsyMTMsMTEgQEAgYm9vbCB0cnVuY2F0ZUZp
bGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSwgbG9uZyBsb25nIG9mZnNldCkKICAgICByZXR1
cm4gZ19zZWVrYWJsZV90cnVuY2F0ZShHX1NFRUtBQkxFKGdfaW9fc3RyZWFtX2dldF9vdXRwdXRf
c3RyZWFtKEdfSU9fU1RSRUFNKGhhbmRsZSkpKSwgb2Zmc2V0LCBudWxscHRyLCBudWxscHRyKTsK
IH0KIAorYm9vbCBmbHVzaEZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSkKK3sKKyAgICBy
ZXR1cm4gZ19vdXRwdXRfc3RyZWFtX2ZsdXNoKGdfaW9fc3RyZWFtX2dldF9vdXRwdXRfc3RyZWFt
KEdfSU9fU1RSRUFNKGhhbmRsZSkpLCBudWxscHRyLCBudWxscHRyKTsKK30KKwogaW50IHdyaXRl
VG9GaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUsIGNvbnN0IHZvaWQqIGRhdGEsIGludCBs
ZW5ndGgpCiB7CiAgICAgaWYgKCFsZW5ndGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9w
b3NpeC9GaWxlU3lzdGVtUE9TSVguY3BwIGIvU291cmNlL1dURi93dGYvcG9zaXgvRmlsZVN5c3Rl
bVBPU0lYLmNwcAppbmRleCBiMTMzODI0ZWMyYTExNWVhNTBjN2MzNGUwZjFhNWVjZTgwNDAyZDRj
Li43OTU2NzBmZDZkODAyNzhkZjZjMTcwYjIxNjJjNDhiNTJlOWNiYmVmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9wb3NpeC9GaWxlU3lzdGVtUE9TSVguY3BwCisrKyBiL1NvdXJjZS9XVEYv
d3RmL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHAKQEAgLTExOCw2ICsxMTgsMTEgQEAgYm9vbCB0
cnVuY2F0ZUZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSwgbG9uZyBsb25nIG9mZnNldCkK
ICAgICByZXR1cm4gIWZ0cnVuY2F0ZShoYW5kbGUsIG9mZnNldCk7CiB9CiAKK2Jvb2wgZmx1c2hG
aWxlKFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUpCit7CisgICAgcmV0dXJuICFmc3luYyhoYW5k
bGUpOworfQorCiBpbnQgd3JpdGVUb0ZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSwgY29u
c3Qgdm9pZCogZGF0YSwgaW50IGxlbmd0aCkKIHsKICAgICBkbyB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi93aW4vRmlsZVN5c3RlbVdpbi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi93aW4vRmls
ZVN5c3RlbVdpbi5jcHAKaW5kZXggZmZhNjI5M2M3M2U4NGVlZTBiY2UxMmNjNGQwZGE3Y2RjYTYw
Yjg5My4uMmJjOGYyMDEwNTFjN2Q4NWIxN2I0NGFjMjczOGQyZWQwMWYyZDk0YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvd2luL0ZpbGVTeXN0ZW1XaW4uY3BwCisrKyBiL1NvdXJjZS9XVEYv
d3RmL3dpbi9GaWxlU3lzdGVtV2luLmNwcApAQCAtMzAzLDYgKzMwMywxMiBAQCBib29sIHRydW5j
YXRlRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlLCBsb25nIGxvbmcgb2Zmc2V0KQogICAg
IHJldHVybiBTZXRGaWxlSW5mb3JtYXRpb25CeUhhbmRsZShoYW5kbGUsIEZpbGVFbmRPZkZpbGVJ
bmZvLCAmZW9mSW5mbywgc2l6ZW9mKEZJTEVfRU5EX09GX0ZJTEVfSU5GTykpOwogfQogCitib29s
IGZsdXNoRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlKQoreworICAgIC8vIE5vdCBpbXBs
ZW1lbnRlZC4KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIGludCB3cml0ZVRvRmlsZShQbGF0Zm9y
bUZpbGVIYW5kbGUgaGFuZGxlLCBjb25zdCB2b2lkKiBkYXRhLCBpbnQgbGVuZ3RoKQogewogICAg
IGlmICghaXNIYW5kbGVWYWxpZChoYW5kbGUpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAzMDM5
NDc1OTcxZDRmYjdmNmY5YmQxYTA2YjhmZjI2Y2M1MDE3Y2JkLi5kZjgxZWI2YTcxY2NjODZjZTFi
Yzk5YzYxYTVhM2JiNmZiZDM0NDhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjk3LDYgKzI5
Nyw3IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuaWRsCiAgICAgTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmlkbAogICAgIE1vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmlkbAorICAgIE1vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5pZGwKICAgICBNb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvU3RvcmFnZU1hbmFnZXIrRmlsZVN5c3RlbUFjY2Vzcy5pZGwKIAogICAgIE1vZHVs
ZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCBjMGJlODZhNzM1NDQyMmYxZmJkYTBlYTBj
NmFkMzQxMzk5YmVjOTJlLi5lMmU4OTYxOTIzYzBjOTk2YjNmZDA4MTRjYzUwMjNiOTJmNjJmNGY2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QK
QEAgLTEyNiw2ICsxMjYsNyBAQCAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2ZldGNoL1dpbmRvd09y
V29ya2VyR2xvYmFsU2NvcGUrRmV0Y2guaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5pZGwKICQoUFJPSkVDVF9ESVIp
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5pZGwKICQoUFJP
SkVDVF9ESVIpL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmlkbAor
JChQUk9KRUNUX0RJUikvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1N0
b3JhZ2VNYW5hZ2VyK0ZpbGVTeXN0ZW1BY2Nlc3MuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVz
L2dhbWVwYWQvR2FtZXBhZC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvZ2FtZXBhZC9HYW1l
cGFkQnV0dG9uLmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMt
b3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQu
eGNmaWxlbGlzdAppbmRleCAyMTExMmNlMTY0N2RkNWQ0YzZhZjY1OTE4YmZiMzQyYTRkY2JjZWJi
Li5mNGY0ODIyOGJkYzQ2MjMwMTdmZDQ0OWQxMjY0MTY0ODBlZTdmYmFiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtOTA3LDYgKzkw
Nyw4IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRmls
ZVN5c3RlbUZpbGVIYW5kbGUuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRmlsZVN5c3RlbUhhbmRsZS5jcHAKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRmlsZVN5c3RlbUhhbmRsZS5o
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0ZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0ZpbGxNb2RlLmNwcAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNGaWxsTW9kZS5oCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0ZvY3VzRXZlbnQuY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA5MmQzYzQ3MTk2MGJjYzcyZTg5MjkwNjNl
YWY1YjU3ZDk3NDNiZTU0Li5iZThhYzI3MjQ5OGRkMjRlNjhiNjlkOWJkNDI1NzA0NTVkOTljZTU0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTE1NSw2ICsxNTUsNyBAQCBKU19C
SU5ESU5HX0lETFMgOj0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5pZGwgXAogICAgICQoV2ViQ29y
ZSkvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaWRsIFwKKwkkKFdl
YkNvcmUpL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1N0b3JhZ2VN
YW5hZ2VyK0ZpbGVTeXN0ZW1BY2Nlc3MuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvZ2Ft
ZXBhZC9HYW1lcGFkLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dhbWVwYWQvR2FtZXBh
ZEJ1dHRvbi5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBi
L1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggMzk0Y2IzYmI2ZTFhMzI3MjQ5NTFi
MjI2NTdlZDk1OTlmZDM3OGY4Mi4uOWE1OWMzMGI5NTJkMjFlNDY2NDZmZTYxOGI1Yzc0YTY5ZTVh
ZjM3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC00Miw2ICs0Miw3IEBAIHNldChXZWJDb3JlX1BS
SVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbUhhbmRsZS5oCiAgICAgTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyLmgKICAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uLmgKKyAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaAogICAgIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9TdG9y
YWdlTWFuYWdlckZpbGVTeXN0ZW1BY2Nlc3MuaAogICAgIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAogICAgIE1vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb25DYWxsYmFja0lkZW50
aWZpZXIuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKaW5kZXggYjIxMjU0N2I1ZmU5
YjliZDI1NjdmYjFiMDk0ODBiYmRkMGYxOWY2Ny4uYTY5YTcyYzZiNjhhMmQ2Y2Q0NWM4ZmI3MzQ0
YmE0M2I1ODczMzE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCkBAIC0yNyw3
ICsyNyw5IEBACiAjaW5jbHVkZSAiRmlsZVN5c3RlbUZpbGVIYW5kbGUuaCIKIAogI2luY2x1ZGUg
IkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIkZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKKyNpbmNs
dWRlICJKU0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01h
bGxvY0lubGluZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDksNSArNTEsNDEgQEAg
dm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Z2V0RmlsZShET01Qcm9taXNlRGVmZXJyZWQ8SURM
SW50ZXJmYWNlPEZpbGU+PiYmIHByb20KICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBO
b3RTdXBwb3J0ZWRFcnJvciwgIk5vdCBpbXBsZW1lbnRlZCJfcyB9KTsKIH0KIAordm9pZCBGaWxl
U3lzdGVtRmlsZUhhbmRsZTo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZShET01Qcm9taXNlRGVmZXJy
ZWQ8SURMSW50ZXJmYWNlPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPj4mJiBwcm9taXNlKQor
eworICAgIGNvbm5lY3Rpb24oKS5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlKGlkZW50aWZpZXIoKSwg
W3Byb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNl
KV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlv
bigpKQorICAgICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhj
ZXB0aW9uKCkpOworCisgICAgICAgIHByb21pc2Uuc2V0dGxlKEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlOjpjcmVhdGUocHJvdGVjdGVkVGhpcy5nZXQoKSwgcmVzdWx0LnJldHVyblZhbHVlKCkp
KTsKKyAgICB9KTsKK30KKwordm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Z2V0U2l6ZShGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwg
RE9NUHJvbWlzZURlZmVycmVkPElETFVuc2lnbmVkTG9uZ0xvbmc+JiYgcHJvbWlzZSkKK3sKKyAg
ICBjb25uZWN0aW9uKCkuZ2V0U2l6ZShpZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIsIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewor
ICAgICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOworICAgIH0pOworfQorCit2
b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjp0cnVuY2F0ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdW5zaWduZWQgbG9uZyBsb25n
IHNpemUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCit7CisgICAgY29ubmVj
dGlvbigpLnRydW5jYXRlKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgc2l6
ZSwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7Cisg
ICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7CisgICAgfSk7Cit9CisKK3Zv
aWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmZsdXNoKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
SWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9p
ZD4mJiBwcm9taXNlKQoreworICAgIGNvbm5lY3Rpb24oKS5mbHVzaChpZGVudGlmaWVyKCksIGFj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIsIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byBy
ZXN1bHQpIG11dGFibGUgeworICAgICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkp
OworICAgIH0pOworfQorCit2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjbG9zZShGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3sKKyAgICBjb25uZWN0aW9uKCkuY2xvc2UoaWRlbnRpZmllcigpLCBhY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaAppbmRleCAyNTAwNWMy
MTMzOGJlNzg2YTk5ZjIwYjhmYWFkZTNjMTJhN2FkY2Q1Li5hZmNlYTFmNzAxMzc5MDhmZTFjNzQw
ZTFmZmVlYjFkZTc4MTQ0MTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaApAQCAtMjYs
MTAgKzI2LDEzIEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkZpbGVTeXN0ZW1IYW5kbGUu
aCIKKyNpbmNsdWRlICJGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBGaWxlOworY2xhc3MgRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGU7Cit0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgRXhjZXB0aW9uT3I7CiAKIGNs
YXNzIEZpbGVTeXN0ZW1GaWxlSGFuZGxlIGZpbmFsIDogcHVibGljIEZpbGVTeXN0ZW1IYW5kbGUg
ewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoRmlsZVN5c3RlbUZpbGVIYW5kbGUpOwpAQCAt
MzcsNiArNDAsMTIgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8Rmls
ZVN5c3RlbUZpbGVIYW5kbGU+IGNyZWF0ZShTdHJpbmcmJiwgRmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYpOwogICAgIHZvaWQgZ2V0
RmlsZShET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZpbGU+PiYmKTsKIAorICAgIHZv
aWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNl
PEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPj4mJik7CisgICAgdm9pZCBnZXRTaXplKEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRE9NUHJvbWlzZURlZmVycmVkPElETFVu
c2lnbmVkTG9uZ0xvbmc+JiYpOworICAgIHZvaWQgdHJ1bmNhdGUoRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGVJZGVudGlmaWVyLCB1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSwgRE9NUHJvbWlzZURl
ZmVycmVkPHZvaWQ+JiYpOworICAgIHZvaWQgZmx1c2goRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CisgICAgdm9pZCBjbG9z
ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+JiYpOworCiBwcml2YXRlOgogICAgIEZpbGVTeXN0
ZW1GaWxlSGFuZGxlKFN0cmluZyYmLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgUmVmPEZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJik7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhh
bmRsZS5pZGwKaW5kZXggOWU2YWE4ODU2ZWQ5N2I2Y2JhNDYzODUwNWFmYWExZTU1YTZkOTVmNS4u
YzEzOTJmNTUxNjY4MzU3OGM0YTQ4MmYxYTZkOTA4OGE4NGM5MWFhMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxl
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbUZpbGVIYW5kbGUuaWRsCkBAIC0yMywxMSArMjMsMTMgQEAKICAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KICAqLwogCisvLyBodHRwczovL3dpY2cuZ2l0aHViLmlvL2ZpbGUt
c3lzdGVtLWFjY2Vzcy8jYXBpLWZpbGVzeXN0ZW1oYW5kbGUKKwogWwogICAgIEVuYWJsZWRCeVNl
dHRpbmc9RmlsZVN5c3RlbUFjY2Vzc0VuYWJsZWQsCiAgICAgRXhwb3NlZD0oV2luZG93LFdvcmtl
ciksCiAgICAgU2VjdXJlQ29udGV4dAogXSBpbnRlcmZhY2UgRmlsZVN5c3RlbUZpbGVIYW5kbGUg
OiBGaWxlU3lzdGVtSGFuZGxlIHsKICAgICBQcm9taXNlPEZpbGU+IGdldEZpbGUoKTsKLSAgICAv
LyBGSVhNRTogYWRkIFByb21pc2U8RmlsZVN5c3RlbVdyaXRhYmxlRmlsZVN0cmVhbT4gY3JlYXRl
V3JpdGFibGUob3B0aW9uYWwgRmlsZVN5c3RlbUNyZWF0ZVdyaXRhYmxlT3B0aW9ucyBvcHRpb25z
KTsKKyAgICBbRXhwb3NlZD1Xb3JrZXJdIFByb21pc2U8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGU+IGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uLmgKaW5kZXggZTYwNWE2N2Q5MmFiNDM2ZmQ2NDgzZTM3OGI2ZjYzOGI0
ZDgxYWEwZC4uNGMwZjNiMDBmYTJkY2Y4NjY4NTNhZWI2MTQwZWM2NGEzNzM1ZGE3OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaApAQCAtMjYsNiArMjYsNyBAQAog
I3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllci5oIgor
I2luY2x1ZGUgIkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oIgogI2luY2x1
ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVm
Q291bnRlZC5oPgogCkBAIC0zOCwxNSArMzksMjQgQEAgdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNz
IEV4Y2VwdGlvbk9yOwogY2xhc3MgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uIDogcHVibGlj
IFRocmVhZFNhZmVSZWZDb3VudGVkPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4gewogcHVi
bGljOgogICAgIHZpcnR1YWwgfkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbigpIHsgfQorCiAg
ICAgdXNpbmcgU2FtZUVudHJ5Q2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2Vw
dGlvbk9yPGJvb2w+JiYpPjsKICAgICB1c2luZyBHZXRIYW5kbGVDYWxsYmFjayA9IENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXI+JiYp
PjsKLSAgICB1c2luZyBSZW1vdmVFbnRyeUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChFeGNlcHRpb25Pcjx2b2lkPiYmKT47CiAgICAgdXNpbmcgUmVzb2x2ZUNhbGxiYWNrID0gQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxWZWN0b3I8U3RyaW5nPj4mJik+OworICAg
IHVzaW5nIEdldEFjY2Vzc0hhbmRsZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChF
eGNlcHRpb25PcjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXI+JiYpPjsKKyAg
ICB1c2luZyBWb2lkQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9y
PHZvaWQ+JiYpPjsKKyAgICB1c2luZyBJbnRlZ2VyQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKEV4Y2VwdGlvbk9yPHVpbnQ2NF90PiYmKT47CisKICAgICB2aXJ0dWFsIHZvaWQgaXNT
YW1lRW50cnkoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyLCBTYW1lRW50cnlDYWxsYmFjayYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGdldEZp
bGVIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwg
Ym9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgR2V0SGFuZGxlQ2FsbGJhY2smJikgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBnZXREaXJlY3RvcnlIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgR2V0SGFuZGxlQ2Fs
bGJhY2smJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVFbnRyeShGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5
LCBSZW1vdmVFbnRyeUNhbGxiYWNrJiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlRW50
cnkoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBk
ZWxldGVSZWN1cnNpdmVseSwgVm9pZENhbGxiYWNrJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
cmVzb2x2ZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIsIFJlc29sdmVDYWxsYmFjayYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVN5
bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEdldEFjY2Vzc0hhbmRs
ZUNhbGxiYWNrJiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0U2l6ZShGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBJbnRl
Z2VyQ2FsbGJhY2smJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB0cnVuY2F0ZShGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1
aW50NjRfdCBzaXplLCBWb2lkQ2FsbGJhY2smJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBmbHVz
aChGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyLCBWb2lkQ2FsbGJhY2smJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjbG9zZShG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyLCBWb2lkQ2FsbGJhY2smJikgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
Mzg5MWU0OTdiODBlYjVhYmM4ZTBlZTI1MDhhZjUxM2UwNDc1Zjc1ZAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZS5jcHAKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oIgorCisj
aW5jbHVkZSAiQnVmZmVyU291cmNlLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbUZpbGVIYW5kbGUu
aCIKKyNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK1JlZjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4gRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGU6OmNyZWF0ZShGaWxlU3lzdGVtRmlsZUhhbmRsZSYgc291cmNlLCBGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZShzb3VyY2UsIGlkZW50aWZpZXIp
KTsKK30KKworRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiBzb3VyY2UsIEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIDogbV9zb3VyY2Uoc291cmNlKQorICAg
ICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCit7Cit9CisKK0ZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlOjp+RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoKQoreworICAgIGlmICghbV9pc0Ns
b3NlZCkKKyAgICAgICAgbV9zb3VyY2UtPmNsb3NlKG1faWRlbnRpZmllciwgW10oYXV0bykgeyB9
KTsKK30KKwordm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6dHJ1bmNhdGUodW5zaWdu
ZWQgbG9uZyBsb25nIHNpemUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCit7
CisgICAgbV9zb3VyY2UtPnRydW5jYXRlKG1faWRlbnRpZmllciwgc2l6ZSwgV1RGTW92ZShwcm9t
aXNlKSk7Cit9CisKK3ZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmdldFNpemUoRE9N
UHJvbWlzZURlZmVycmVkPElETFVuc2lnbmVkTG9uZ0xvbmc+JiYgcHJvbWlzZSkKK3sKKyAgICBt
X3NvdXJjZS0+Z2V0U2l6ZShtX2lkZW50aWZpZXIsIFdURk1vdmUocHJvbWlzZSkpOworfQorCit2
b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpmbHVzaChET01Qcm9taXNlRGVmZXJyZWQ8
dm9pZD4mJiBwcm9taXNlKQoreworICAgIG1fc291cmNlLT5mbHVzaChtX2lkZW50aWZpZXIsIFdU
Rk1vdmUocHJvbWlzZSkpOworfQorCit2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpj
bG9zZShET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQoreworICAgIGlmIChtX2lz
Q2xvc2VkKQorICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxp
ZFN0YXRlRXJyb3IgfSk7CisKKyAgICBtX3NvdXJjZS0+Y2xvc2UobV9pZGVudGlmaWVyLCBbd2Vh
a1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShh
dXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAg
IHdlYWtUaGlzLT5kaWRDbG9zZSgpOworCisgICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUo
cmVzdWx0KSk7CisgICAgfSk7Cit9CisKK3ZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6
OmRpZENsb3NlKCkKK3sKKyAgICBtX2lzQ2xvc2VkID0gdHJ1ZTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yOWU0MTU3YjY1NDFiOTNlNmVhNWZlMDIzN2YwY2YyMTVkMDNjM2JmCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlLmgKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaW5jbHVkZSAiRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVy
LmgiCisjaW5jbHVkZSAiSURMVHlwZXMuaCIKKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOwordGVtcGxh
dGU8dHlwZW5hbWU+IGNsYXNzIERPTVByb21pc2VEZWZlcnJlZDsKKworY2xhc3MgRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGUgOiBwdWJsaWMgUmVmQ291bnRlZDxGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZT4geworcHVibGljOgorICAgIHN0cnVjdCBGaWxlc3lzdGVtUmVhZFdyaXRlT3B0aW9ucyB7Cisg
ICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBhdDsKKyAgICB9OworCisgICAgc3RhdGljIFJlZjxG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4gY3JlYXRlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiwg
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyKTsKKyAgICB+RmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGUoKTsKKworICAgIHZvaWQgdHJ1bmNhdGUodW5zaWduZWQgbG9uZyBsb25n
IHNpemUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKyAgICB2b2lkIGdldFNpemUoRE9N
UHJvbWlzZURlZmVycmVkPElETFVuc2lnbmVkTG9uZ0xvbmc+JiYpOworICAgIHZvaWQgZmx1c2go
RE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOworICAgIHZvaWQgY2xvc2UoRE9NUHJvbWlzZURl
ZmVycmVkPHZvaWQ+JiYpOworICAgIHZvaWQgZGlkQ2xvc2UoKTsKKworcHJpdmF0ZToKKyAgICBG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtRmlsZUhhbmRsZSYsIEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcik7CisKKyAgICBSZWY8RmlsZVN5c3RlbUZpbGVI
YW5kbGU+IG1fc291cmNlOworICAgIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
ciBtX2lkZW50aWZpZXI7CisgICAgYm9vbCBtX2lzQ2xvc2VkIHsgZmFsc2UgfTsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjExMjA2NGE2ZGY2MTFjNDEyMWUyNWM3MTAyZjAzMzAzY2U0NDk0
YWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRsCkBAIC0wLDAgKzEsNDAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCitbCisgICAgRW5hYmxlZEJ5U2V0dGluZz1BY2Nlc3NIYW5kbGVFbmFibGVkLAor
ICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCisgICAgRXhwb3NlZD1EZWRpY2F0ZWRXb3Jr
ZXIsCisgICAgU2VjdXJlQ29udGV4dAorXSBpbnRlcmZhY2UgRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGUgeworICAgIFByb21pc2U8dW5kZWZpbmVkPiB0cnVuY2F0ZShbRW5mb3JjZVJhbmdlXSB1
bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSk7CisgICAgUHJvbWlzZTx1bnNpZ25lZCBsb25nIGxvbmc+
IGdldFNpemUoKTsKKyAgICBQcm9taXNlPHVuZGVmaW5lZD4gZmx1c2goKTsKKyAgICBQcm9taXNl
PHVuZGVmaW5lZD4gY2xvc2UoKTsKK307CisKK2RpY3Rpb25hcnkgRmlsZXN5c3RlbVJlYWRXcml0
ZU9wdGlvbnMgeworICAgIFtFbmZvcmNlUmFuZ2VdIHVuc2lnbmVkIGxvbmcgbG9uZyBhdDsKK307
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVy
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMzEzNTFiZjJkOTRlNWYzYTdlNjFjNjk5Y2FiODI3YTE3OGI2MTc1ZAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIuaApAQCAtMCwwICsxLDM2IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRp
Zmllci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGVJZGVudGlmaWVyVHlwZSB7IH07Cit1c2luZyBGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZUlkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlSWRlbnRpZmllclR5cGU+OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggNDVl
YjNlYzk1Yjc2NTFlN2MxNWUzMGE2OTljNDc0YjY1NTJkNDNjZC4uZmE3ZjY2OTM1NzE2MGI3OTFk
YzI1YTFhMzIwODNkYTI2OTg1NjZiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgdm9pZCBXb3JrZXJG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnNjb3BlQ2xvc2VkKCkKICAgICBmb3IgKGF1dG8m
IGNhbGxiYWNrIDogZ2V0SGFuZGxlQ2FsbGJhY2tzLnZhbHVlcygpKQogICAgICAgICBjYWxsYmFj
ayhFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKIAotICAgIGF1dG8gcmVtb3ZlRW50
cnlDYWxsYmFja3MgPSBzdGQ6OmV4Y2hhbmdlKG1fcmVtb3ZlRW50cnlDYWxsYmFja3MsIHsgfSk7
CisgICAgYXV0byByZW1vdmVFbnRyeUNhbGxiYWNrcyA9IHN0ZDo6ZXhjaGFuZ2UobV92b2lkQ2Fs
bGJhY2tzLCB7IH0pOwogICAgIGZvciAoYXV0byYgY2FsbGJhY2sgOiByZW1vdmVFbnRyeUNhbGxi
YWNrcy52YWx1ZXMoKSkKICAgICAgICAgY2FsbGJhY2soRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRl
RXJyb3IgfSk7CiAKQEAgLTE0NywxOSArMTQ3LDE5IEBAIHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpkaWRHZXRIYW5kbGUoQ2FsbGJhY2tJZGVudGlmaWVyIGNhbGxiYWNr
CiAgICAgICAgIGNhbGxiYWNrKFdURk1vdmUocmVzdWx0KSk7CiB9CiAKLXZvaWQgV29ya2VyRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpyZW1vdmVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJz
aXZlbHksIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6UmVtb3ZlRW50cnlDYWxsYmFjayYm
IGNhbGxiYWNrKQordm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnJlbW92
ZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uOjpWb2lkQ2FsbGJhY2smJiBjYWxsYmFjaykKIHsKICAgICBpZiAoIW1fc2NvcGUpCiAgICAg
ICAgIHJldHVybiBjYWxsYmFjayhFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKIAog
ICAgIGF1dG8gY2FsbGJhY2tJZGVudGlmaWVyID0gQ2FsbGJhY2tJZGVudGlmaWVyOjpnZW5lcmF0
ZVRocmVhZFNhZmUoKTsKLSAgICBtX3JlbW92ZUVudHJ5Q2FsbGJhY2tzLmFkZChjYWxsYmFja0lk
ZW50aWZpZXIsIFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICBtX3ZvaWRDYWxsYmFja3MuYWRkKGNh
bGxiYWNrSWRlbnRpZmllciwgV1RGTW92ZShjYWxsYmFjaykpOwogCiAgICAgY2FsbE9uTWFpblRo
cmVhZChbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQgPSBSZWYgeyBtX3Njb3BlLT50
aHJlYWQoKSB9LCBtYWluVGhyZWFkQ29ubmVjdGlvbiA9IG1fbWFpblRocmVhZENvbm5lY3Rpb24s
IGlkZW50aWZpZXIsIG5hbWUgPSBuYW1lLmlzb2xhdGVkQ29weSgpLCBkZWxldGVSZWN1cnNpdmVs
eV0oKSBtdXRhYmxlIHsKICAgICAgICAgYXV0byBtYWluVGhyZWFkQ2FsbGJhY2sgPSBbY2FsbGJh
Y2tJZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQgPSBXVEZNb3ZlKHdvcmtlclRocmVhZCldKGF1dG8g
cmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBv
c3RUYXNrRm9yTW9kZShbY2FsbGJhY2tJZGVudGlmaWVyLCByZXN1bHQgPSBjcm9zc1RocmVhZENv
cHkocmVzdWx0KV0gKGF1dG8mIHNjb3BlKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBpZiAo
YXV0byBjb25uZWN0aW9uID0gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5maWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oKSkKLSAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlv
bi0+ZGlkUmVtb3ZlRW50cnkoY2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3VsdCkpOwor
ICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLT5jb21wbGV0ZVZvaWRDYWxsYmFjayhjYWxs
YmFja0lkZW50aWZpZXIsIFdURk1vdmUocmVzdWx0KSk7CiAgICAgICAgICAgICB9LCBXb3JrZXJS
dW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKICAgICAgICAgfTsKIApAQCAtMTY3LDEyICsxNjcsNiBA
QCB2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6cmVtb3ZlRW50cnkoRmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaQogICAgIH0pOwogfQogCi12b2lkIFdvcmtlckZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6ZGlkUmVtb3ZlRW50cnkoQ2FsbGJhY2tJZGVudGlmaWVy
IGNhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8dm9pZD4mJiByZXN1bHQpCi17Ci0gICAg
aWYgKGF1dG8gY2FsbGJhY2sgPSBtX3JlbW92ZUVudHJ5Q2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJ
ZGVudGlmaWVyKSkKLSAgICAgICAgY2FsbGJhY2soV1RGTW92ZShyZXN1bHQpKTsKLX0KLQogdm9p
ZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnJlc29sdmUoRmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgb3Ro
ZXJJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlJlc29sdmVDYWxsYmFj
ayYmIGNhbGxiYWNrKQogewogICAgIGlmICghbV9zY29wZSkKQEAgLTE5OSw0ICsxOTMsMTIyIEBA
IHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpkaWRSZXNvbHZlKENhbGxi
YWNrSWRlbnRpZmllciBjYWxsYmFja0lkCiAgICAgICAgIGNhbGxiYWNrKFdURk1vdmUocmVzdWx0
KSk7CiB9CiAKK3ZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpkaWRDcmVh
dGVTeW5jQWNjZXNzSGFuZGxlKENhbGxiYWNrSWRlbnRpZmllciBjYWxsYmFja0lkZW50aWZpZXIs
IEV4Y2VwdGlvbk9yPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcj4mJiByZXN1
bHQpCit7CisgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX2dldEFjY2Vzc0hhbmRsQ2FsbGJhY2tz
LnRha2UoY2FsbGJhY2tJZGVudGlmaWVyKSkKKyAgICAgICAgY2FsbGJhY2soV1RGTW92ZShyZXN1
bHQpKTsKK30KKwordm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNvbXBs
ZXRlSW50ZWdlckNhbGxiYWNrKENhbGxiYWNrSWRlbnRpZmllciBjYWxsYmFja0lkZW50aWZpZXIs
IEV4Y2VwdGlvbk9yPHVpbnQ2NF90PiYmIHJlc3VsdCkKK3sKKyAgICBpZiAoYXV0byBjYWxsYmFj
ayA9IG1faW50ZWdlckNhbGxiYWNrcy50YWtlKGNhbGxiYWNrSWRlbnRpZmllcikpCisgICAgICAg
IGNhbGxiYWNrKFdURk1vdmUocmVzdWx0KSk7Cit9CisKK3ZvaWQgV29ya2VyRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpjb21wbGV0ZVZvaWRDYWxsYmFjayhDYWxsYmFja0lkZW50aWZpZXIg
Y2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25Pcjx2b2lkPiYmIHJlc3VsdCkKK3sKKyAgICBp
ZiAoYXV0byBjYWxsYmFjayA9IG1fdm9pZENhbGxiYWNrcy50YWtlKGNhbGxiYWNrSWRlbnRpZmll
cikpCisgICAgICAgIGNhbGxiYWNrKFdURk1vdmUocmVzdWx0KSk7Cit9CisKK3ZvaWQgV29ya2Vy
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKEZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbjo6R2V0QWNjZXNzSGFuZGxlQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBpZiAoIW1f
c2NvcGUpCisgICAgICAgIHJldHVybiBjYWxsYmFjayhFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVF
cnJvciB9KTsKKworICAgIGF1dG8gY2FsbGJhY2tJZGVudGlmaWVyID0gQ2FsbGJhY2tJZGVudGlm
aWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUoKTsKKyAgICBtX2dldEFjY2Vzc0hhbmRsQ2FsbGJhY2tz
LmFkZChjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUoY2FsbGJhY2spKTsKKworICAgIGNhbGxP
bk1haW5UaHJlYWQoW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gUmVmIHsgbV9z
Y29wZS0+dGhyZWFkKCkgfSwgbWFpblRocmVhZENvbm5lY3Rpb24gPSBtX21haW5UaHJlYWRDb25u
ZWN0aW9uLCBpZGVudGlmaWVyXSgpIG11dGFibGUgeworICAgICAgICBhdXRvIG1haW5UaHJlYWRD
YWxsYmFjayA9IFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFdURk1vdmUod29y
a2VyVGhyZWFkKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgICAgICAgICAgd29ya2VyVGhy
ZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFtjYWxsYmFja0lkZW50aWZpZXIsIHJlc3Vs
dCA9IGNyb3NzVGhyZWFkQ29weShyZXN1bHQpXSAoYXV0byYgc2NvcGUpIG11dGFibGUgeworICAg
ICAgICAgICAgICAgIGlmIChhdXRvIGNvbm5lY3Rpb24gPSBkb3duY2FzdDxXb3JrZXJHbG9iYWxT
Y29wZT4oc2NvcGUpLmZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbigpKQorICAgICAgICAgICAg
ICAgICAgICBjb25uZWN0aW9uLT5kaWRDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKGNhbGxiYWNrSWRl
bnRpZmllciwgV1RGTW92ZShyZXN1bHQpKTsKKyAgICAgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6
OmRlZmF1bHRNb2RlKCkpOworICAgICAgICB9OworCisgICAgICAgIG1haW5UaHJlYWRDb25uZWN0
aW9uLT5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlKGlkZW50aWZpZXIsIFdURk1vdmUobWFpblRocmVh
ZENhbGxiYWNrKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOjpnZXRTaXplKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIs
IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlm
aWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkludGVnZXJDYWxsYmFjayYmIGNhbGxi
YWNrKQoreworICAgIGlmICghbV9zY29wZSkKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKEV4Y2Vw
dGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOworCisgICAgYXV0byBjYWxsYmFja0lkZW50aWZp
ZXIgPSBDYWxsYmFja0lkZW50aWZpZXI6OmdlbmVyYXRlVGhyZWFkU2FmZSgpOworICAgIG1faW50
ZWdlckNhbGxiYWNrcy5hZGQoY2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7
CisKKyAgICBjYWxsT25NYWluVGhyZWFkKFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVh
ZCA9IFJlZiB7IG1fc2NvcGUtPnRocmVhZCgpIH0sIG1haW5UaHJlYWRDb25uZWN0aW9uID0gbV9t
YWluVGhyZWFkQ29ubmVjdGlvbiwgaWRlbnRpZmllciwgYWNjZXNzSGFuZGxlSWRlbnRpZmllcl0o
KSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byBtYWluVGhyZWFkQ2FsbGJhY2sgPSBbY2FsbGJhY2tJ
ZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQgPSBXVEZNb3ZlKHdvcmtlclRocmVhZCldKGF1dG8gcmVz
dWx0KSBtdXRhYmxlIHsKKyAgICAgICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RU
YXNrRm9yTW9kZShbY2FsbGJhY2tJZGVudGlmaWVyLCByZXN1bHQgPSBjcm9zc1RocmVhZENvcHko
cmVzdWx0KV0gKGF1dG8mIHNjb3BlKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0
byBjb25uZWN0aW9uID0gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5maWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24oKSkKKyAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+
Y29tcGxldGVJbnRlZ2VyQ2FsbGJhY2soY2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3Vs
dCkpOworICAgICAgICAgICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CisgICAg
ICAgIH07CisKKyAgICAgICAgbWFpblRocmVhZENvbm5lY3Rpb24tPmdldFNpemUoaWRlbnRpZmll
ciwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV1RGTW92ZShtYWluVGhyZWFkQ2FsbGJhY2spKTsK
KyAgICB9KTsKK30KKwordm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnRy
dW5jYXRlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1aW50NjRf
dCBzaXplLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmIGNhbGxi
YWNrKQoreworICAgIGlmICghbV9zY29wZSkKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKEV4Y2Vw
dGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOworCisgICAgYXV0byBjYWxsYmFja0lkZW50aWZp
ZXIgPSBDYWxsYmFja0lkZW50aWZpZXI6OmdlbmVyYXRlVGhyZWFkU2FmZSgpOworICAgIG1fdm9p
ZENhbGxiYWNrcy5hZGQoY2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisK
KyAgICBjYWxsT25NYWluVGhyZWFkKFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9
IFJlZiB7IG1fc2NvcGUtPnRocmVhZCgpIH0sIG1haW5UaHJlYWRDb25uZWN0aW9uID0gbV9tYWlu
VGhyZWFkQ29ubmVjdGlvbiwgaWRlbnRpZmllciwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgc2l6
ZV0oKSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byBtYWluVGhyZWFkQ2FsbGJhY2sgPSBbY2FsbGJh
Y2tJZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQgPSBXVEZNb3ZlKHdvcmtlclRocmVhZCldKGF1dG8g
cmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBv
c3RUYXNrRm9yTW9kZShbY2FsbGJhY2tJZGVudGlmaWVyLCByZXN1bHQgPSBjcm9zc1RocmVhZENv
cHkocmVzdWx0KV0gKGF1dG8mIHNjb3BlKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBpZiAo
YXV0byBjb25uZWN0aW9uID0gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5maWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oKSkKKyAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlv
bi0+Y29tcGxldGVWb2lkQ2FsbGJhY2soY2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3Vs
dCkpOworICAgICAgICAgICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CisgICAg
ICAgIH07CisKKyAgICAgICAgbWFpblRocmVhZENvbm5lY3Rpb24tPnRydW5jYXRlKGlkZW50aWZp
ZXIsIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHNpemUsIFdURk1vdmUobWFpblRocmVhZENhbGxi
YWNrKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uOjpmbHVzaChGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAg
ICBpZiAoIW1fc2NvcGUpCisgICAgICAgIHJldHVybiBjYWxsYmFjayhFeGNlcHRpb24geyBJbnZh
bGlkU3RhdGVFcnJvciB9KTsKKworICAgIGF1dG8gY2FsbGJhY2tJZGVudGlmaWVyID0gQ2FsbGJh
Y2tJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUoKTsKKyAgICBtX3ZvaWRDYWxsYmFja3Mu
YWRkKGNhbGxiYWNrSWRlbnRpZmllciwgV1RGTW92ZShjYWxsYmFjaykpOworCisgICAgY2FsbE9u
TWFpblRocmVhZChbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQgPSBSZWYgeyBtX3Nj
b3BlLT50aHJlYWQoKSB9LCBtYWluVGhyZWFkQ29ubmVjdGlvbiA9IG1fbWFpblRocmVhZENvbm5l
Y3Rpb24sIGlkZW50aWZpZXIsIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXJdKCkgbXV0YWJsZSB7Cisg
ICAgICAgIGF1dG8gbWFpblRocmVhZENhbGxiYWNrID0gW2NhbGxiYWNrSWRlbnRpZmllciwgd29y
a2VyVGhyZWFkID0gV1RGTW92ZSh3b3JrZXJUaHJlYWQpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7
CisgICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoW2Nh
bGxiYWNrSWRlbnRpZmllciwgcmVzdWx0ID0gY3Jvc3NUaHJlYWRDb3B5KHJlc3VsdCldIChhdXRv
JiBzY29wZSkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gY29ubmVjdGlvbiA9
IGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPihzY29wZSkuZmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uKCkpCisgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPmNvbXBsZXRlVm9pZENh
bGxiYWNrKGNhbGxiYWNrSWRlbnRpZmllciwgV1RGTW92ZShyZXN1bHQpKTsKKyAgICAgICAgICAg
IH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOworICAgICAgICB9OworCisgICAgICAg
IG1haW5UaHJlYWRDb25uZWN0aW9uLT5mbHVzaChpZGVudGlmaWVyLCBhY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyLCBXVEZNb3ZlKG1haW5UaHJlYWRDYWxsYmFjaykpOworICAgIH0pOworfQorCit2b2lk
IFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y2xvc2UoRmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6
Vm9pZENhbGxiYWNrJiYgY2FsbGJhY2spCit7CisgICAgaWYgKCFtX3Njb3BlKQorICAgICAgICBy
ZXR1cm4gY2FsbGJhY2soRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CisKKyAgICBh
dXRvIGNhbGxiYWNrSWRlbnRpZmllciA9IENhbGxiYWNrSWRlbnRpZmllcjo6Z2VuZXJhdGVUaHJl
YWRTYWZlKCk7CisgICAgbV92b2lkQ2FsbGJhY2tzLmFkZChjYWxsYmFja0lkZW50aWZpZXIsIFdU
Rk1vdmUoY2FsbGJhY2spKTsKKworICAgIGNhbGxPbk1haW5UaHJlYWQoW2NhbGxiYWNrSWRlbnRp
Zmllciwgd29ya2VyVGhyZWFkID0gUmVmIHsgbV9zY29wZS0+dGhyZWFkKCkgfSwgbWFpblRocmVh
ZENvbm5lY3Rpb24gPSBtX21haW5UaHJlYWRDb25uZWN0aW9uLCBpZGVudGlmaWVyLCBhY2Nlc3NI
YW5kbGVJZGVudGlmaWVyXSgpIG11dGFibGUgeworICAgICAgICBhdXRvIG1haW5UaHJlYWRDYWxs
YmFjayA9IFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFdURk1vdmUod29ya2Vy
VGhyZWFkKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgICAgICAgICAgd29ya2VyVGhyZWFk
LT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFtjYWxsYmFja0lkZW50aWZpZXIsIHJlc3VsdCA9
IGNyb3NzVGhyZWFkQ29weShyZXN1bHQpXSAoYXV0byYgc2NvcGUpIG11dGFibGUgeworICAgICAg
ICAgICAgICAgIGlmIChhdXRvIGNvbm5lY3Rpb24gPSBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29w
ZT4oc2NvcGUpLmZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbigpKQorICAgICAgICAgICAgICAg
ICAgICBjb25uZWN0aW9uLT5jb21wbGV0ZVZvaWRDYWxsYmFjayhjYWxsYmFja0lkZW50aWZpZXIs
IFdURk1vdmUocmVzdWx0KSk7CisgICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0
TW9kZSgpKTsKKyAgICAgICAgfTsKKworICAgICAgICBtYWluVGhyZWFkQ29ubmVjdGlvbi0+Y2xv
c2UoaWRlbnRpZmllciwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV1RGTW92ZShtYWluVGhyZWFk
Q2FsbGJhY2spKTsKKyAgICB9KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IGVjNjlk
MTc1YTJmNzU5ZjA2YjNmMWM1NDc0NGQ3MTBjOWU2MWMzYWMuLjkwY2JjYmY2NzNhNTg2ZjI3NDQy
Zjk2NDAzNDdhOTI1MjY1MGNmYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTQ2LDggKzQ2LDEwIEBAIHB1YmxpYzoKICAgICB1c2lu
ZyBDYWxsYmFja0lkZW50aWZpZXIgPSBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb25D
YWxsYmFja0lkZW50aWZpZXI7CiAgICAgdm9pZCBkaWRJc1NhbWVFbnRyeShDYWxsYmFja0lkZW50
aWZpZXIsIEV4Y2VwdGlvbk9yPGJvb2w+JiYpOwogICAgIHZvaWQgZGlkR2V0SGFuZGxlKENhbGxi
YWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXI+JiYp
OwotICAgIHZvaWQgZGlkUmVtb3ZlRW50cnkoQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25P
cjx2b2lkPiYmKTsKICAgICB2b2lkIGRpZFJlc29sdmUoQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNl
cHRpb25PcjxWZWN0b3I8U3RyaW5nPj4mJik7CisgICAgdm9pZCBkaWRDcmVhdGVTeW5jQWNjZXNz
SGFuZGxlKENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8RmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGVJZGVudGlmaWVyPiYmIHJlc3VsdCk7CisgICAgdm9pZCBjb21wbGV0ZVZvaWRDYWxs
YmFjayhDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPHZvaWQ+JiYgcmVzdWx0KTsKKyAg
ICB2b2lkIGNvbXBsZXRlSW50ZWdlckNhbGxiYWNrKENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0
aW9uT3I8dWludDY0X3Q+JiYgcmVzdWx0KTsKIAogcHJpdmF0ZToKICAgICBXb3JrZXJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24oV29ya2VyR2xvYmFsU2NvcGUmLCBSZWY8RmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uPiYmKTsKQEAgLTU2LDE1ICs1OCwyMyBAQCBwcml2YXRlOgogICAgIHZv
aWQgaXNTYW1lRW50cnkoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlNhbWVFbnRyeUNhbGxi
YWNrJiYpIGZpbmFsOwogICAgIHZvaWQgZ2V0RmlsZUhhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhhbmRsZUNhbGxiYWNrJiYpIGZpbmFsOwogICAg
IHZvaWQgZ2V0RGlyZWN0b3J5SGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIEZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbjo6R2V0SGFuZGxlQ2FsbGJhY2smJikgZmluYWw7Ci0gICAgdm9pZCByZW1vdmVF
bnRyeShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29s
IGRlbGV0ZVJlY3Vyc2l2ZWx5LCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlJlbW92ZUVu
dHJ5Q2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCByZW1vdmVFbnRyeShGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5
LCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmKSBmaW5hbDsKICAg
ICB2b2lkIHJlc29sdmUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlJlc29sdmVDYWxsYmFj
ayYmKSBmaW5hbDsKIAorICAgIHZvaWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRBY2Nlc3NI
YW5kbGVDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIGdldFNpemUoRmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpJbnRlZ2VyQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9p
ZCB0cnVuY2F0ZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXplLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb246OlZvaWRDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIGZsdXNoKEZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Vm9pZENhbGxiYWNrJiYpIGZpbmFsOworICAgIHZv
aWQgY2xvc2UoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJh
Y2smJikgZmluYWw7CisKICAgICBXZWFrUHRyPFdvcmtlckdsb2JhbFNjb3BlPiBtX3Njb3BlOwog
ICAgIFJlZlB0cjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+IG1fbWFpblRocmVhZENvbm5l
Y3Rpb247CiAgICAgSGFzaE1hcDxDYWxsYmFja0lkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbjo6U2FtZUVudHJ5Q2FsbGJhY2s+IG1fc2FtZUVudHJ5Q2FsbGJhY2tzOwogICAg
IEhhc2hNYXA8Q2FsbGJhY2tJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246
OkdldEhhbmRsZUNhbGxiYWNrPiBtX2dldEhhbmRsZUNhbGxiYWNrczsKLSAgICBIYXNoTWFwPENh
bGxiYWNrSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpSZW1vdmVFbnRy
eUNhbGxiYWNrPiBtX3JlbW92ZUVudHJ5Q2FsbGJhY2tzOwogICAgIEhhc2hNYXA8Q2FsbGJhY2tJ
ZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlJlc29sdmVDYWxsYmFjaz4g
bV9yZXNvbHZlQ2FsbGJhY2tzOworICAgIEhhc2hNYXA8Q2FsbGJhY2tJZGVudGlmaWVyLCBGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEFjY2Vzc0hhbmRsZUNhbGxiYWNrPiBtX2dldEFj
Y2Vzc0hhbmRsQ2FsbGJhY2tzOworICAgIEhhc2hNYXA8Q2FsbGJhY2tJZGVudGlmaWVyLCBGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjaz4gbV92b2lkQ2FsbGJhY2tzOwor
ICAgIEhhc2hNYXA8Q2FsbGJhY2tJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b246OkludGVnZXJDYWxsYmFjaz4gbV9pbnRlZ2VyQ2FsbGJhY2tzOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA2YjZkOTQyMWI3MWU0NDI2OGNiNjAwNzg5
NTBjMTA1NTVhNjJkNWZhLi5jOGI5MzM3YmI1YTBjZDVkNzM0YTBiYjM0ZjczZDc1Njc4NWQ4NzEw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dApAQCAtNjEsNiArNjEsNyBAQCBNb2R1bGVzL2ZldGNoL1dpbmRvd09y
V29ya2VyR2xvYmFsU2NvcGVGZXRjaC5jcHAKIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxl
U3lzdGVtRGlyZWN0b3J5SGFuZGxlLmNwcAogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVT
eXN0ZW1GaWxlSGFuZGxlLmNwcAogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1I
YW5kbGUuY3BwCitNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGUuY3BwCiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uLmNwcAogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9Ob3RpZmllci5jcHAKIE1v
ZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwCkBAIC0zMDQ1LDYgKzMwNDYsNyBAQCBK
U0ZpbGVTeXN0ZW1FbnRyeUNhbGxiYWNrLmNwcAogSlNGaWxlU3lzdGVtRmlsZUVudHJ5LmNwcAog
SlNGaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKIEpTRmlsZVN5c3RlbUhhbmRsZS5jcHAKK0pTRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwCiBKU0ZpbGxNb2RlLmNwcAogSlNGb2N1c0V2ZW50
LmNwcAogSlNGb2N1c09wdGlvbnMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZWFkMDA1MDA5NTUyNDFmZDg3YmQzOGNkNjM0
MjFlMDI1OGY5NmE5ZS4uYzYwNzdhZjQ5YjI5Yjk1NDBhZGE4ODBhOThjNTNiZDhmNDI3OTE4MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMjgxMCw2ICsyODEwLDcgQEAKIAkJOTMwQUFDOUEyNTBFQjg0OTAwMTNEQTlGIC8qIENT
U0NvbmRpdGlvblJ1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzMEFBQzk4MjUwRUI4MTcwMDEzREE5RiAvKiBDU1NDb25kaXRpb25SdWxlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTMwQUFDOUYy
NTBFRDQwOTAwMTNEQTlGIC8qIEpTQ1NTQ29uZGl0aW9uUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwQUFDOUQyNTBFRDQwOTAwMTNEQTlGIC8q
IEpTQ1NTQ29uZGl0aW9uUnVsZS5oICovOyB9OwogCQk5MzBBQUNBMjI1MEVENDExMDAxM0RBOUYg
LyogSlNDU1NHcm91cGluZ1J1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzMEFBQ0EwMjUwRUQ0MTEwMDEzREE5RiAvKiBKU0NTU0dyb3VwaW5nUnVs
ZS5oICovOyB9OworCQk5MzBFNDQ4NjI3MEMzNzIyMDBERTdBQjcgLyogRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MzBFNDQ4NDI3MEMzNzIxMDBERTdBQjcgLyogRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJOTMxNTNCREExNDE4MUY3QTAwRkNGNUJFIC8qIG1pc3NpbmdJbWFn
ZUAyeC5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzMTUzQkQ5MTQxODFGN0EwMEZDRjVCRSAvKiBtaXNzaW5nSW1hZ2VAMngucG5nICovOyB9Owog
CQk5MzE1M0JEQzE0MTk1OUJDMDBGQ0Y1QkUgLyogdGV4dEFyZWFSZXNpemVDb3JuZXIucG5nIGlu
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzE1M0JEQjE0
MTk1OUJCMDBGQ0Y1QkUgLyogdGV4dEFyZWFSZXNpemVDb3JuZXIucG5nICovOyB9OwogCQk5MzE1
M0JFMjE0MTk1QTU3MDBGQ0Y1QkUgLyogbWlzc2luZ0ltYWdlLnBuZyBpbiBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMxNTNCRTExNDE5NUE1NzAwRkNGNUJF
IC8qIG1pc3NpbmdJbWFnZS5wbmcgKi87IH07CkBAIC0yOTYzLDYgKzI5NjQsNyBAQAogCQk5M0Q2
QjdBODI1NTFENDFGMDA1OEREM0EgLyogRHVtbXlTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Q2QjdBNjI1
NTFEM0VEMDA1OEREM0EgLyogRHVtbXlTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNEOUQ1M0MwREEy
N0UxODAwNzcyMTZDIC8qIFJhbmdlQm91bmRhcnlQb2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNEOUQ1M0IwREEyN0UxODAwNzcyMTZDIC8qIFJh
bmdlQm91bmRhcnlQb2ludC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTkzRTI0MUZGMEIyQjRFNDAwMEM3MzJBMSAvKiBIVE1MRnJhbWVPd25lckVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
RTI0MUZFMEIyQjRFNDAwMEM3MzJBMSAvKiBIVE1MRnJhbWVPd25lckVsZW1lbnQuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0UyNjlBMjI3MEE1
RDVEMDAyQzRGRjAgLyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTI2OTlGMjcwQTVENUMwMDJDNEZG
MCAvKiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRTJBMzA3MTIzRTlEQzAwMDlGRTEyQSAvKiBI
VE1MUGFyc2VySWRpb21zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5M0UyQTMwNTEyM0U5REMwMDA5RkUxMkEgLyogSFRNTFBhcnNlcklkaW9tcy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRTVCMjY1
MjQ1NUU5NkYwMDVDNTJEMCAvKiBBdHRyaWJ1dGVkU3RyaW5nLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0U1QjI2MzI0NTVFOTZGMDA1QzUyRDAgLyog
QXR0cmlidXRlZFN0cmluZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTkzRjE5OEU1MDgyNDVFNTkwMDFFOUFCQyAvKiBIVE1MRG9jdW1lbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MjNEMjNDMDJE
RTQzOTYwMTg2MzVDQSAvKiBIVE1MRG9jdW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNTI3MSw4ICs1MjczLDggQEAKIAkJRTQ3QzM5MzIx
RkU2RTEwNTAwQkJCQzZCIC8qIFJlbmRlclRyZWVCdWlsZGVyTGlzdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ3QzM5MjgxRkU2RTBERDAwQkJCQzZC
IC8qIFJlbmRlclRyZWVCdWlsZGVyTGlzdC5oICovOyB9OwogCQlFNDdDMzkzMzFGRTZFMTA4MDBC
QkJDNkIgLyogUmVuZGVyVHJlZUJ1aWxkZXJNdWx0aUNvbHVtbi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ3QzM5MjcxRkU2RTBEQzAwQkJCQzZCIC8q
IFJlbmRlclRyZWVCdWlsZGVyTXVsdGlDb2x1bW4uaCAqLzsgfTsKIAkJRTQ3Q0VCQzkyNzA2RUY1
MjAwQjhEOEY1IC8qIElubGluZVdhbGtlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTQ3Q0VCQzcyNzA2RUY1MTAwQjhEOEY1IC8qIElubGluZVdhbGtl
ci5oICovOyB9OwotCQlFNDdDRUJFQTI3MDlERkQxMDBCOEQ4RjUgLyogUnVsZVNldEJ1aWxkZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0N0NFQkU4
MjcwOURGRDAwMEI4RDhGNSAvKiBSdWxlU2V0QnVpbGRlci5oICovOyB9OwogCQlFNDdDRUJFMTI3
MDk5MTZEMDBCOEQ4RjUgLyogSW5saW5lSXRlcmF0b3JUZXh0Qm94LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDdDRUJFMDI3MDk5MTZEMDBCOEQ4RjUg
LyogSW5saW5lSXRlcmF0b3JUZXh0Qm94LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJRTQ3Q0VCRUEyNzA5REZEMTAwQjhEOEY1IC8qIFJ1bGVTZXRC
dWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
NDdDRUJFODI3MDlERkQwMDBCOEQ4RjUgLyogUnVsZVNldEJ1aWxkZXIuaCAqLzsgfTsKIAkJRTQ3
RTI3NjUxNjAzNkVEMjAwRUUyQUZCIC8qIEV4dGVuc2lvblN0eWxlU2hlZXRzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDdFMjc2NDE2MDM2RUQyMDBF
RTJBRkIgLyogRXh0ZW5zaW9uU3R5bGVTaGVldHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFNDdGQzhBMzI1Qjg0RDcyMDA1NDk1RkMgLyogTG9h
ZFNjaGVkdWxpbmdNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFNDdGQzhBMTI1Qjg0RDcxMDA1NDk1RkMgLyogTG9hZFNjaGVkdWxpbmdNb2RlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTQ4MTM3
QjkxREIzQjUyNjAwNUM1OUJGIC8qIFN0eWxlVmFsaWRpdHkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0ODEzN0I4MURCM0I1MjYwMDVDNTlCRiAvKiBT
dHlsZVZhbGlkaXR5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKQEAgLTExNjk0LDYgKzExNjk2LDcgQEAKIAkJOTMwQUFDQTAyNTBFRDQxMTAwMTNEQTlG
IC8qIEpTQ1NTR3JvdXBpbmdSdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTQ1NTR3JvdXBpbmdSdWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMEFB
Q0ExMjUwRUQ0MTEwMDEzREE5RiAvKiBKU0NTU0dyb3VwaW5nUnVsZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NTU0dyb3VwaW5nUnVsZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMEM5MERDMTlDRjk2NTMwMEQ2QzIxQSAvKiBMZWdhY3lJ
bmxpbmVJdGVyYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBM
ZWdhY3lJbmxpbmVJdGVyYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
MEU0NDg0MjcwQzM3MjEwMERFN0FCNyAvKiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50
aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkz
MTUzQkQ5MTQxODFGN0EwMEZDRjVCRSAvKiBtaXNzaW5nSW1hZ2VAMngucG5nICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRoID0g
Im1pc3NpbmdJbWFnZUAyeC5wbmciOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzE1
M0JEQjE0MTk1OUJCMDBGQ0Y1QkUgLyogdGV4dEFyZWFSZXNpemVDb3JuZXIucG5nICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRo
ID0gdGV4dEFyZWFSZXNpemVDb3JuZXIucG5nOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5MzE1M0JFMTE0MTk1QTU3MDBGQ0Y1QkUgLyogbWlzc2luZ0ltYWdlLnBuZyAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGltYWdlLnBuZzsgcGF0aCA9
IG1pc3NpbmdJbWFnZS5wbmc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTk5Myw2
ICsxMTk5Niw5IEBACiAJCTkzRTIyN0RGMEFGNTg5QUQwMEQ0ODMyNCAvKiBTdWJyZXNvdXJjZUxv
YWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdWJyZXNvdXJj
ZUxvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRTI0MUZFMEIyQjRF
NDAwMEM3MzJBMSAvKiBIVE1MRnJhbWVPd25lckVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSFRNTEZyYW1lT3duZXJFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTkzRTI0MjVFMEIyQjUwOTUwMEM3MzJBMSAvKiBIVE1MRnJhbWVPd25lckVs
ZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTEZyYW1l
T3duZXJFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNFMjY5OUQy
NzBBNUQ1QjAwMkM0RkYwIC8qIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRTI2OTlGMjcwQTVENUMwMDJDNEZGMCAvKiBGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5M0UyNjlBMDI3MEE1RDVDMDAyQzRGRjAgLyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0UyQTMwNDEy
M0U5REMwMDA5RkUxMkEgLyogSFRNTFBhcnNlcklkaW9tcy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MUGFyc2VySWRpb21zLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTNFMkEzMDUxMjNFOURDMDAwOUZFMTJBIC8qIEhUTUxQYXJzZXJJZGlv
bXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTFBhcnNlcklkaW9tcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0U1QjI1NDI0NTM2QjFFMDA1QzUyRDAg
LyogVVJMRGVjb21wb3NpdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBVUkxEZWNvbXBvc2l0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE2NTM0LDEwICsxNjU0MCwxMCBAQAogCQlFNDdDMzkyQjFGRTZFMERGMDBCQkJDNkIgLyogUmVu
ZGVyVHJlZUJ1aWxkZXJMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFJlbmRlclRyZWVCdWlsZGVyTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUU0N0MzOTJDMUZFNkUwREYwMEJCQkM2QiAvKiBSZW5kZXJUcmVlVXBkYXRlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJUcmVlVXBkYXRlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFNDdDRUJDNzI3MDZFRjUxMDBCOEQ4RjUgLyogSW5saW5l
V2Fsa2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElubGluZVdhbGtlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFNDdDRUJFODI3MDlERkQwMDBCOEQ4RjUg
LyogUnVsZVNldEJ1aWxkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUnVs
ZVNldEJ1aWxkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTQ3Q0VCRUIyNzA5
REZEQzAwQjhEOEY1IC8qIFJ1bGVTZXRCdWlsZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJ1
bGVTZXRCdWlsZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQ3Q0VCREUy
NzA5OTE2NDAwQjhEOEY1IC8qIElubGluZUl0ZXJhdG9yVGV4dEJveC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBJbmxpbmVJdGVyYXRvclRleHRCb3guY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlFNDdDRUJFMDI3MDk5MTZEMDBCOEQ4RjUgLyogSW5saW5lSXRlcmF0b3JUZXh0Qm94
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElubGluZUl0ZXJhdG9yVGV4dEJv
eC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNDdDRUJFODI3MDlERkQwMDBCOEQ4
RjUgLyogUnVsZVNldEJ1aWxkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UnVsZVNldEJ1aWxkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTQ3Q0VCRUIy
NzA5REZEQzAwQjhEOEY1IC8qIFJ1bGVTZXRCdWlsZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFJ1bGVTZXRCdWlsZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQ3RTI3
NjQxNjAzNkVEMjAwRUUyQUZCIC8qIEV4dGVuc2lvblN0eWxlU2hlZXRzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4dGVuc2lvblN0eWxlU2hlZXRzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUU0N0UyNzY3MTYwMzZFREMwMEVFMkFGQiAvKiBFeHRlbnNpb25T
dHlsZVNoZWV0cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFeHRl
bnNpb25TdHlsZVNoZWV0cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0N0ZD
OEExMjVCODRENzEwMDU0OTVGQyAvKiBMb2FkU2NoZWR1bGluZ01vZGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTG9hZFNjaGVkdWxpbmdNb2RlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0yMzQzNSw2ICsyMzQ0MSwxMCBAQAogCQkJCTkzMkM5QkQ5MjZERDYy
NjAwMDUzQjNEQiAvKiBGaWxlU3lzdGVtSGFuZGxlLmlkbCAqLywKIAkJCQk5MzU0MjQyNzI3MDNC
Qzg4MDA1Q0E3MkMgLyogRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaCAqLywKIAkJCQk5MzU0
MjQyOTI3MDNCQ0FEMDA1Q0E3MkMgLyogRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggKi8s
CisJCQkJOTNFMjY5QTAyNzBBNUQ1QzAwMkM0RkYwIC8qIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlLmNwcCAqLywKKwkJCQk5M0UyNjk5RjI3MEE1RDVDMDAyQzRGRjAgLyogRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGUuaCAqLywKKwkJCQk5M0UyNjk5RDI3MEE1RDVCMDAyQzRGRjAgLyogRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRsICovLAorCQkJCTkzMEU0NDg0MjcwQzM3MjEwMERF
N0FCNyAvKiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIuaCAqLywKIAkJCQk5
MzQ0M0U3QjI2RThBNkJDMDA1ODUzOEYgLyogU3RvcmFnZU1hbmFnZXIrRmlsZVN5c3RlbUFjY2Vz
cy5pZGwgKi8sCiAJCQkJOTM0NDNFN0QyNkU4QTZCQzAwNTg1MzhGIC8qIFN0b3JhZ2VNYW5hZ2Vy
RmlsZVN5c3RlbUFjY2Vzcy5oICovLAogCQkJCTkzMjMzQzg1MjcwNTRDNzgwMEJCRjQxRSAvKiBX
b3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwICovLApAQCAtMzI1NTUsNiArMzI1
NjUsOCBAQAogCQkJCTkzNDQzRTg4MjZFOTk1QzQwMDU4NTM4RiAvKiBGaWxlU3lzdGVtSGFuZGxl
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzU0MjQyRjI3MDNDQTUxMDA1Q0E3MkMgLyogRmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNTQyNDMwMjcwM0NC
ODYwMDVDQTcyQyAvKiBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICov
LAorCQkJCTkzRTI2OUEyMjcwQTVENUQwMDJDNEZGMCAvKiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTMwRTQ0ODYyNzBDMzcyMjAwREU3QUI3IC8qIEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkM1RUI2OUYwRTgxREFFQjAwQjI1OTY1IC8qIEZpbGxMYXllci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNzEyQkU0ODMxRkU4NjVERDAwMjAzMUNDIC8qIEZpbGxNb2RlLmggaW4gSGVhZGVycyAqLywK
IAkJCQk4NDVFNzJGODBGRDI2MUVFMDBBODdENzkgLyogRmlsdGVyLmggaW4gSGVhZGVycyAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFt
ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaApp
bmRleCBlODM1ZGY3ZmYwYjIyMGRlYmEwNThmZDNhODRkZjVkMmMyNTEzOTVjLi4yYmI5YTkzOWJm
Y2I2YTk3NTg4NjJmNzg4NTY2ZTcyYzA0YTBlNzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCkBAIC0xMjQsNiArMTI0LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKEZpbGVTeXN0ZW1GaWxlRW50cnkpIFwKICAgICBt
YWNybyhGaWxlU3lzdGVtRmlsZUhhbmRsZSkgXAogICAgIG1hY3JvKEZpbGVTeXN0ZW1IYW5kbGUp
IFwKKyAgICBtYWNybyhGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSkgXAogICAgIG1hY3JvKEdh
bWVwYWQpIFwKICAgICBtYWNybyhHYW1lcGFkQnV0dG9uKSBcCiAgICAgbWFjcm8oR2FtZXBhZEV2
ZW50KSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaAppbmRleCA0NDNjOTUxNGNkOTMyOTEzZGRl
MzRjMjdmNmI1YjU3MjAxYTBhNDFmLi4zMWY4NDcyMTM0ZjhlZmEwZGIyY2U2Y2M0NDdmZjcwYzk2
NDZiZTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUVycm9yLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAog
I3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlIDxXZWJDb3JlL0V4Y2VwdGlvbkNvZGUuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL0V4Y2VwdGlvbk9yLmg+CiAjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4K
IAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC0zNCwyNiArMzQsMzIgQEAgZW51bSBjbGFzcyBGaWxl
U3lzdGVtU3RvcmFnZUVycm9yIDogdWludDhfdCB7CiAgICAgRmlsZU5vdEZvdW5kLAogICAgIElu
dmFsaWROYW1lLAogICAgIEludmFsaWRNb2RpZmljYXRpb24sCisgICAgSW52YWxpZFN0YXRlLAog
ICAgIFR5cGVNaXNtYXRjaCwKICAgICBVbmtub3duCiB9OwogCi1pbmxpbmUgV2ViQ29yZTo6RXhj
ZXB0aW9uQ29kZSBjb252ZXJ0VG9FeGNlcHRpb25Db2RlKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3Ig
ZXJyb3IpCitpbmxpbmUgV2ViQ29yZTo6RXhjZXB0aW9uT3I8dm9pZD4gY29udmVydFRvRXhjZXB0
aW9uT3Ioc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBlcnJvcikKIHsKLSAg
ICBzd2l0Y2ggKGVycm9yKSB7CisgICAgaWYgKCFlcnJvcikKKyAgICAgICAgcmV0dXJuIHsgfTsK
KworICAgIHN3aXRjaCAoKmVycm9yKSB7CiAgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9y
OjpGaWxlTm90Rm91bmQ6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpFeGNlcHRpb25Db2RlOjpO
b3RGb3VuZEVycm9yOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29y
ZTo6Tm90Rm91bmRFcnJvciB9OwogICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52
YWxpZE1vZGlmaWNhdGlvbjoKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGU6
OkludmFsaWRNb2RpZmljYXRpb25FcnJvcjsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2Vw
dGlvbiB7IFdlYkNvcmU6OkludmFsaWRNb2RpZmljYXRpb25FcnJvciB9OwogICAgIGNhc2UgRmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VHlwZU1pc21hdGNoOgotICAgICAgICByZXR1cm4gV2ViQ29y
ZTo6RXhjZXB0aW9uQ29kZTo6VHlwZUVycm9yOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhj
ZXB0aW9uIHsgV2ViQ29yZTo6VHlwZUVycm9yIH07CiAgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFn
ZUVycm9yOjpJbnZhbGlkTmFtZToKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbkNv
ZGU6OlVua25vd25FcnJvcjsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdl
YkNvcmU6OlVua25vd25FcnJvciwgIk5hbWUgaXMgaW52YWxpZCIgfTsKKyAgICBjYXNlIEZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWRTdGF0ZToKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6
OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OkludmFsaWRTdGF0ZUVycm9yIH07CiAgICAgY2FzZSBGaWxl
U3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOgogICAgICAgICBicmVhazsKICAgICB9CiAKLSAg
ICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uQ29kZTo6VW5rbm93bkVycm9yOworICAgIHJldHVy
biBXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpVbmtub3duRXJyb3IgfTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CkBAIC02Niw2ICs3Miw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVu
dW1UcmFpdHM8V2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiB7CiAgICAgICAgIFdlYktp
dDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6RmlsZU5vdEZvdW5kLAogICAgICAgICBXZWJLaXQ6
OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWROYW1lLAogICAgICAgICBXZWJLaXQ6OkZp
bGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWRNb2RpZmljYXRpb24sCisgICAgICAgIFdlYktp
dDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxpZFN0YXRlLAogICAgICAgICBXZWJLaXQ6
OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlR5cGVNaXNtYXRjaCwKICAgICAgICAgV2ViS2l0OjpG
aWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duCiAgICAgPjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3Jh
Z2VIYW5kbGUuY3BwCmluZGV4IDIyYmMzZWY0ZWQyNzhhMTllMjQwNmM3OTQwY2ZiNmM4MzhkOTJk
ZWMuLjFmMDNlMjdjYTU1ZWI0ZDFhYjExYmNkNzUzNTMwY2JlNjE1ZjUyNjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhh
bmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiRmls
ZVN5c3RlbVN0b3JhZ2VFcnJvci5oIgogI2luY2x1ZGUgIkZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdl
ci5oIgorI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAt
MTM5LDQgKzE0MCw4NyBAQCBFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgRmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OnJlc29sdgogICAgIHJldHVybiByZXN0
UGF0aC5zcGxpdChwYXRoU2VwYXJhdG9yKTsKIH0KIAorRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBG
aWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpCit7CisgICAg
aWYgKCFtX21hbmFnZXIpCisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChGaWxlU3lzdGVt
U3RvcmFnZUVycm9yOjpVbmtub3duKTsKKworICAgIGJvb2wgYWNxdWlyZWQgPSBtX21hbmFnZXIt
PmFjcXVpcmVMb2NrRm9yRmlsZShtX3BhdGgsIG1faWRlbnRpZmllcik7CisgICAgaWYgKCFhY3F1
aXJlZCkKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I6OkludmFsaWRTdGF0ZSk7CisKKyAgICBBU1NFUlQoIW1fYWN0aXZlU3luY0FjY2Vzc0hhbmRs
ZSk7CisgICAgbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlID0gV2ViQ29yZTo6RmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUoKTsKKyAgICByZXR1
cm4gbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlLnZhbHVlKCk7Cit9CisKK0V4cGVjdGVkPHVpbnQ2
NF90LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Z2V0
U2l6ZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNz
SGFuZGxlSWRlbnRpZmllcikKK3sKKyAgICBpZiAoIW1fbWFuYWdlcikKKyAgICAgICAgcmV0dXJu
IG1ha2VVbmV4cGVjdGVkKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24pOworCisgICAg
aWYgKCFtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgfHwgbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxl
LnZhbHVlKCkgIT0gYWNjZXNzSGFuZGxlSWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIG1ha2VV
bmV4cGVjdGVkKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24pOworCisgICAgYXV0byBz
aXplID0gRmlsZVN5c3RlbTo6ZmlsZVNpemUobV9wYXRoKTsKKyAgICBpZiAoIXNpemUpCisgICAg
ICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3du
KTsKKworICAgIHJldHVybiBzaXplLnZhbHVlKCk7Cit9CisKK3N0ZDo6b3B0aW9uYWw8RmlsZVN5
c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OnRydW5jYXRlKFdlYkNv
cmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyLCB1aW50NjRfdCBzaXplKQoreworICAgIGlmICghbV9tYW5hZ2VyKQorICAgICAgICBy
ZXR1cm4gRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bjsKKworICAgIGlmICghbV9hY3Rp
dmVTeW5jQWNjZXNzSGFuZGxlIHx8IG1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZS52YWx1ZSgpICE9
IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpCisgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFn
ZUVycm9yOjpVbmtub3duOworCisgICAgYXV0byBoYW5kbGUgPSBGaWxlU3lzdGVtOjpvcGVuRmls
ZShtX3BhdGgsIEZpbGVTeXN0ZW06OkZpbGVPcGVuTW9kZTo6UmVhZFdyaXRlKTsKKyAgICBhdXRv
IGNsb3NlRmlsZVNjb3BlID0gbWFrZVNjb3BlRXhpdChbJl0geworICAgICAgICBGaWxlU3lzdGVt
OjpjbG9zZUZpbGUoaGFuZGxlKTsKKyAgICB9KTsKKworICAgIGF1dG8gcmVzdWx0ID0gRmlsZVN5
c3RlbTo6dHJ1bmNhdGVGaWxlKGhhbmRsZSwgc2l6ZSk7CisgICAgaWYgKCFyZXN1bHQpCisgICAg
ICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOworCisgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKK30KKworc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9y
PiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Zmx1c2goV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpCit7CisgICAgaWYg
KCFtX21hbmFnZXIpCisgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtu
b3duOworCisgICAgaWYgKCFtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgfHwgbV9hY3RpdmVTeW5j
QWNjZXNzSGFuZGxlLnZhbHVlKCkgIT0gYWNjZXNzSGFuZGxlSWRlbnRpZmllcikKKyAgICAgICAg
cmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd247CisKKyAgICBhdXRvIGhhbmRs
ZSA9IEZpbGVTeXN0ZW06Om9wZW5GaWxlKG1fcGF0aCwgRmlsZVN5c3RlbTo6RmlsZU9wZW5Nb2Rl
OjpSZWFkV3JpdGUpOworICAgIGF1dG8gY2xvc2VGaWxlU2NvcGUgPSBtYWtlU2NvcGVFeGl0KFsm
XSB7CisgICAgICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZShoYW5kbGUpOworICAgIH0pOworCisg
ICAgYXV0byByZXN1bHQgPSBGaWxlU3lzdGVtOjpmbHVzaEZpbGUoaGFuZGxlKTsKKyAgICBpZiAo
IXJlc3VsdCkKKyAgICAgICAgcmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd247
CisKKyAgICByZXR1cm4gc3RkOjpudWxsb3B0OworfQorCitzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpjbG9zZShXZWJDb3JlOjpG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmll
cikKK3sKKyAgICBpZiAoIW1fbWFuYWdlcikKKyAgICAgICAgcmV0dXJuIEZpbGVTeXN0ZW1TdG9y
YWdlRXJyb3I6OlVua25vd247CisKKyAgICBpZiAoIW1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSB8
fCBtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUudmFsdWUoKSAhPSBhY2Nlc3NIYW5kbGVJZGVudGlm
aWVyKQorICAgICAgICByZXR1cm4gRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bjsKKwor
ICAgIG1fbWFuYWdlci0+cmVsZWFzZUxvY2tGb3JGaWxlKG1fcGF0aCwgbV9pZGVudGlmaWVyKTsK
KyAgICBtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgPSBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhh
bmRsZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1T
dG9yYWdlSGFuZGxlLmgKaW5kZXggODc5OTA5MDdkOWI4OWE1MjNmN2ZmMWY1NTA3MGE1NzA2NDBh
YjNiMi4uZTQ3ZWQzYTE2ZWU5NWFiMWQxNDk5MzhkMTk3ZjY0NjNkOTc0OTAxNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdl
SGFuZGxlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIkNvbm5l
Y3Rpb24uaCIKICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIu
aD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTQ5
LDYgKzUwLDEyIEBAIHB1YmxpYzoKICAgICBzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I+IHJlbW92ZUVudHJ5KGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNp
dmVseSk7CiAgICAgRXhwZWN0ZWQ8VmVjdG9yPFN0cmluZz4sIEZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I+IHJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIpOwogCisgICAg
RXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBG
aWxlU3lzdGVtU3RvcmFnZUVycm9yPiBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKCk7CisgICAgRXhw
ZWN0ZWQ8dWludDY0X3QsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGdldFNpemUoV2ViQ29yZTo6
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyKTsKKyAgICBzdGQ6Om9wdGlvbmFs
PEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHRydW5jYXRlKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSk7CisgICAgc3RkOjpvcHRpb25h
bDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBmbHVzaChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIpOworICAgIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvcj4gY2xvc2UoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyKTsKKwogcHJpdmF0ZToKICAgICBFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVxdWVzdENyZWF0ZUhhbmRsZShJ
UEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlELCBUeXBlLCBTdHJpbmcmJiBuYW1lLCBib29sIGNyZWF0
ZUlmTmVjZXNzYXJ5KTsKIApAQCAtNTcsNiArNjQsNyBAQCBwcml2YXRlOgogICAgIFR5cGUgbV90
eXBlOwogICAgIFN0cmluZyBtX3BhdGg7CiAgICAgU3RyaW5nIG1fbmFtZTsKKyAgICBzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcj4gbV9h
Y3RpdmVTeW5jQWNjZXNzSGFuZGxlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0
b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9G
aWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IDFiN2E1MWEyZjY4ODQxNWMzOTZiNWI0
OGZkYzA1Zjk5NWZjNmQzZGUuLjk0OGVlYjdjMTcxNTVhMTM3MzgwZDdiZjY4MjA0MTI4NzRhNWI3
YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxl
U3lzdGVtU3RvcmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC0yOCw2ICsyOCw3IEBA
CiAKICNpbmNsdWRlICJGaWxlU3lzdGVtU3RvcmFnZUVycm9yLmgiCiAjaW5jbHVkZSAiRmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeS5oIgorI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtODcsMTUgKzg4LDIxIEBAIHZvaWQgRmlsZVN5c3RlbVN0
b3JhZ2VNYW5hZ2VyOjpjb25uZWN0aW9uQ2xvc2VkKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQg
Y29ubmVjCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBhdXRvIGhh
bmRsZXMgPSBtX2hhbmRsZXNCeUNvbm5lY3Rpb24uZmluZChjb25uZWN0aW9uKTsKLSAgICBpZiAo
aGFuZGxlcyA9PSBtX2hhbmRsZXNCeUNvbm5lY3Rpb24uZW5kKCkpCisgICAgYXV0byBjb25uZWN0
aW9uSGFuZGxlcyA9IG1faGFuZGxlc0J5Q29ubmVjdGlvbi5maW5kKGNvbm5lY3Rpb24pOworICAg
IGlmIChjb25uZWN0aW9uSGFuZGxlcyA9PSBtX2hhbmRsZXNCeUNvbm5lY3Rpb24uZW5kKCkpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIGZvciAoYXV0byBoYW5kbGVJZGVudGlmaWVyIDogaGFuZGxl
cy0+dmFsdWUpIHsKLSAgICAgICAgYXV0byBoYW5kbGUgPSBtX2hhbmRsZXMudGFrZShoYW5kbGVJ
ZGVudGlmaWVyKTsKLSAgICAgICAgbV9yZWdpc3RyeS51bnJlZ2lzdGVySGFuZGxlKGhhbmRsZUlk
ZW50aWZpZXIpOworICAgIGF1dG8gaWRlbnRpZmllcnMgPSBjb25uZWN0aW9uSGFuZGxlcy0+dmFs
dWU7CisgICAgZm9yIChhdXRvIGlkZW50aWZpZXIgOiBpZGVudGlmaWVycykgeworICAgICAgICBh
dXRvIGhhbmRsZSA9IG1faGFuZGxlcy50YWtlKGlkZW50aWZpZXIpOworICAgICAgICBtX3JlZ2lz
dHJ5LnVucmVnaXN0ZXJIYW5kbGUoaWRlbnRpZmllcik7CiAgICAgfQotICAgIG1faGFuZGxlc0J5
Q29ubmVjdGlvbi5yZW1vdmUoaGFuZGxlcyk7CisKKyAgICBtX2xvY2tNYXAucmVtb3ZlSWYoWyZp
ZGVudGlmaWVyc10oYXV0byYgZW50cnkpIHsKKyAgICAgICAgcmV0dXJuIGlkZW50aWZpZXJzLmNv
bnRhaW5zKGVudHJ5LnZhbHVlKTsKKyAgICB9KTsKKworICAgIG1faGFuZGxlc0J5Q29ubmVjdGlv
bi5yZW1vdmUoY29ubmVjdGlvbkhhbmRsZXMpOwogfQogCiBFeHBlY3RlZDxXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3Rl
bVN0b3JhZ2VNYW5hZ2VyOjpnZXREaXJlY3RvcnkoSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCBj
b25uZWN0aW9uKQpAQCAtMTA1LDQgKzExMiwyMyBAQCBFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbQog
ICAgIHJldHVybiBjcmVhdGVIYW5kbGUoY29ubmVjdGlvbiwgRmlsZVN5c3RlbVN0b3JhZ2VIYW5k
bGU6OlR5cGU6OkRpcmVjdG9yeSwgU3RyaW5nIHsgbV9wYXRoIH0sIHsgfSwgdHJ1ZSk7CiB9CiAK
K2Jvb2wgRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOjphY3F1aXJlTG9ja0ZvckZpbGUoY29uc3Qg
U3RyaW5nJiBwYXRoLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlm
aWVyKQoreworICAgIGlmIChtX2xvY2tNYXAuY29udGFpbnMocGF0aCkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIG1fbG9ja01hcC5hZGQocGF0aCwgaWRlbnRpZmllcik7CisgICAgcmV0
dXJuIHRydWU7Cit9CisKK2Jvb2wgRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOjpyZWxlYXNlTG9j
a0ZvckZpbGUoY29uc3QgU3RyaW5nJiBwYXRoLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGlmIChhdXRvIGxvY2tlZEJ5SWRlbnRpZmllciA9
IG1fbG9ja01hcC5nZXQocGF0aCk7IGxvY2tlZEJ5SWRlbnRpZmllciA9PSBpZGVudGlmaWVyKSB7
CisgICAgICAgIG1fbG9ja01hcC5yZW1vdmUocGF0aCk7CisgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3Rl
bVN0b3JhZ2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
RmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmgKaW5kZXggOGI0MzhiMmU5M2RmNGE4NDQ3YzNiNzc0
MGJjNTRjODdmY2E0MzE5Zi4uMWFlYmE5ZGFmNzk2OGM2OGQ4ZmU4YjNiZTdiNjc1NTI4M2Q3NjEz
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVT
eXN0ZW1TdG9yYWdlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuaApAQCAtNDMsMTIgKzQzLDE1IEBAIHB1
YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIGdldFBhdGgoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIpOwogICAgIHZvaWQgY29ubmVjdGlvbkNsb3NlZChJUEM6OkNvbm5lY3Rpb246
OlVuaXF1ZUlEKTsKICAgICBFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gZ2V0RGlyZWN0b3J5KElQQzo6Q29ubmVjdGlv
bjo6VW5pcXVlSUQpOworICAgIGJvb2wgYWNxdWlyZUxvY2tGb3JGaWxlKGNvbnN0IFN0cmluZyYg
cGF0aCwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIpOworICAgIGJvb2wgcmVs
ZWFzZUxvY2tGb3JGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCwgV2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIpOwogCiBwcml2YXRlOgogICAgIFN0cmluZyBtX3BhdGg7CiAgICAgRmls
ZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeSYgbV9yZWdpc3RyeTsKICAgICBIYXNoTWFwPElQ
Qzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQsIEhhc2hTZXQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXI+PiBtX2hhbmRsZXNCeUNvbm5lY3Rpb247CiAgICAgSGFzaE1hcDxXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPEZpbGVTeXN0ZW1T
dG9yYWdlSGFuZGxlPj4gbV9oYW5kbGVzOworICAgIEhhc2hNYXA8U3RyaW5nLCBXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcj4gbV9sb2NrTWFwOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3Jh
Z2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IDY3YWViYTUyMDZhNjYy
YzYxZDliMGU1NmQ1NTk1MDljYjEyYTUwMjUuLjM2ODYxNzQyODE4MGQ3ODQ2YjJkNjJmMDYwZTk5
ZTVkYzdhN2RkNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3Rv
cmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC0yMjYsNSArMjI2
LDYwIEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpyZXNvbHZlKFdlYkNvcmU6OkZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpCiAgICAgY29tcGxldGlvbkhhbmRsZXIoaGFu
ZGxlLT5yZXNvbHZlKHRhcmdldElkZW50aWZpZXIpKTsKIH0KIAordm9pZCBOZXR3b3JrU3RvcmFn
ZU1hbmFnZXI6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxX
ZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBBU1NFUlQoIVJ1bkxv
b3A6OmlzTWFpbigpKTsKKworICAgIGF1dG8gaGFuZGxlID0gbV9maWxlU3lzdGVtU3RvcmFnZUhh
bmRsZVJlZ2lzdHJ5LT5nZXRIYW5kbGUoaWRlbnRpZmllcik7CisgICAgaWYgKCFoYW5kbGUpCisg
ICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZChGaWxlU3lzdGVt
U3RvcmFnZUVycm9yOjpVbmtub3duKSk7CisKKyAgICBjb21wbGV0aW9uSGFuZGxlcihoYW5kbGUt
PmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKSk7Cit9CisKK3ZvaWQgTmV0d29ya1N0b3JhZ2VNYW5h
Z2VyOjpnZXRTaXplRm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRl
bnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4
cGVjdGVkPHVpbnQ2NF90LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit7CisgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CisKKyAgICBhdXRvIGhh
bmRsZSA9IG1fZmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeS0+Z2V0SGFuZGxlKGlkZW50
aWZpZXIpOworICAgIGlmICghaGFuZGxlKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRs
ZXIobWFrZVVuZXhwZWN0ZWQoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bikpOworCisg
ICAgY29tcGxldGlvbkhhbmRsZXIoaGFuZGxlLT5nZXRTaXplKGFjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIpKTsKK30KKwordm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OnRydW5jYXRlRm9yQWNjZXNz
SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdl
YkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyLCB1aW50NjRfdCBzaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0
aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorewor
ICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgYXV0byBoYW5kbGUgPSBtX2Zp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnktPmdldEhhbmRsZShpZGVudGlmaWVyKTsKKyAg
ICBpZiAoIWhhbmRsZSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I6OlVua25vd24pOworCisgICAgY29tcGxldGlvbkhhbmRsZXIoaGFuZGxl
LT50cnVuY2F0ZShhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBzaXplKSk7Cit9CisKK3ZvaWQgTmV0
d29ya1N0b3JhZ2VNYW5hZ2VyOjpmbHVzaEZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3sKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAg
IGF1dG8gaGFuZGxlID0gbV9maWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5LT5nZXRIYW5k
bGUoaWRlbnRpZmllcik7CisgICAgaWYgKCFoYW5kbGUpCisgICAgICAgIHJldHVybiBjb21wbGV0
aW9uSGFuZGxlcihGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duKTsKKworICAgIGNvbXBs
ZXRpb25IYW5kbGVyKGhhbmRsZS0+Zmx1c2goYWNjZXNzSGFuZGxlSWRlbnRpZmllcikpOworfQor
Cit2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Y2xvc2VBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+
JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7
CisKKyAgICBhdXRvIGhhbmRsZSA9IG1fZmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeS0+
Z2V0SGFuZGxlKGlkZW50aWZpZXIpOworICAgIGlmICghaGFuZGxlKQorICAgICAgICByZXR1cm4g
Y29tcGxldGlvbkhhbmRsZXIoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bik7CisKKyAg
ICBjb21wbGV0aW9uSGFuZGxlcihoYW5kbGUtPmNsb3NlKGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIp
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaApp
bmRleCAxYjgxMGRmNzhkNzNkMmZmMDllODRkZTJjY2IyMmJhMDYxODAxMWM4Li5hODE4ODUxZmYx
NDUzODY4YTc0ZDE3NmZiNmNiMjhmMjFhYjMyMzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5o
CkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiT3JpZ2luU3RvcmFnZU1hbmFnZXIuaCIKICNp
bmNsdWRlIDxXZWJDb3JlL0NsaWVudE9yaWdpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjksNiArNzAsMTEgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGdldERpcmVjdG9yeUhhbmRsZShJUEM6OkNvbm5lY3Rpb24mLCBXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciwgU3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAgICB2b2lkIHJlbW92
ZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3Rk
OjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwogICAgIHZvaWQgcmVzb2x2
ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8VmVjdG9y
PFN0cmluZz4sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CisgICAgdm9pZCBjcmVhdGVT
eW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKKyAgICB2b2lk
IGdldFNpemVGb3JBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDx1aW50NjRfdCwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJv
cj4pPiYmKTsKKyAgICB2b2lkIHRydW5jYXRlRm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZUlkZW50aWZpZXIsIHVpbnQ2NF90IHNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpv
cHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOworICAgIHZvaWQgZmx1c2hGb3JB
Y2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6
OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CisgICAgdm9p
ZCBjbG9zZUFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwg
V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsK
IAogICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogICAgIFJlZjxXb3JrUXVldWU+IG1f
cXVldWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
TmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCA2
MmU3NDAzY2JiNzAwYWQ5NmJiZWJlMGZlYjgyMDVjODE2MjI0ZmY3Li40ZmVhMjc2NWZkOTJhOTgw
NjBjZDA0MDA2MmM1ZTk0NTVjODE5ZmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFn
ZXIubWVzc2FnZXMuaW4KQEAgLTMyLDQgKzMyLDEwIEBACiAgICAgR2V0RGlyZWN0b3J5SGFuZGxl
KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0cmluZyBu
YW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5KSAtPiAoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVz
dWx0KSBBc3luYyBXYW50c0Nvbm5lY3Rpb24KICAgICBSZW1vdmVFbnRyeShXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdHJpbmcgbmFtZSwgYm9vbCBkZWxl
dGVSZWN1cnNpdmVseSkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFn
ZUVycm9yPiByZXN1bHQpIEFzeW5jCiAgICAgUmVzb2x2ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciB0YXJnZXRJZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8VmVjdG9yPFN0cmluZz4sIFdlYktp
dDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYworCisgICAgQ3JlYXRlU3lu
Y0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlm
aWVyKSAtPiAoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyLCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKKyAg
ICBHZXRTaXplRm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRp
ZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8dWludDY0X3QsIFdlYktp
dDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYworICAgIFRydW5jYXRlRm9y
QWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NI
YW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXplKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6
OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKKyAgICBGbHVzaEZvckFjY2Vz
c0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBX
ZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxl
SWRlbnRpZmllcikgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yPiByZXN1bHQpIEFzeW5jCisgICAgQ2xvc2VBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpIC0+IChzdGQ6Om9w
dGlvbmFsPFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1Nv
dXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggZWQ5NGEzZWU1NjY4
YTM0OGJjNzZhZGJkNDJiNjUwMDcxZDFiOTUxYS4uNTk2YjNmYWI2NTg2NmJkZWY1ODEyODBkOTEx
NjIwYzA3NGY2N2VmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9t
ZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5
CkBAIC0yODIsNiArMjgyLDcgQEAgZGVmIHR5cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVj
bGFyZWQoKToKICAgICAgICAgJ1dlYkNvcmU6OkRyYWdBcHBsaWNhdGlvbkZsYWdzJywKICAgICAg
ICAgJ1dlYkNvcmU6OkZldGNoSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllcicsCisgICAgICAgICdXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
JywKICAgICAgICAgJ1dlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcycsCiAgICAg
ICAgICdXZWJDb3JlOjpJbWFnZURlY29kZXJJZGVudGlmaWVyJywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggYjA1NGM5MjM4YmRkMmZjZWM4
MTI5YjAzMDZiNTNiYmZiMWM3ZGY5My4uZmI3M2E4OTUyZTA5Y2ZhNWQwNGUzMWU5NWU0M2M0N2Mz
ODcwZDZkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bi5jcHAKQEAgLTY3LDcgKzY3LDcgQEAgdm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b246OmdldEZpbGVIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW4KIAogICAgIG1f
Y29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1h
bmFnZXI6OkdldEZpbGVIYW5kbGUoaWRlbnRpZmllciwgbmFtZSwgY3JlYXRlSWZOZWNlc3Nhcnkp
LCBbbmFtZSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0o
YXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgICAg
IHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBjb252ZXJ0VG9F
eGNlcHRpb25Db2RlKHJlc3VsdC5lcnJvcigpKSB9KTsKKyAgICAgICAgICAgIHJldHVybiBjb21w
bGV0aW9uSGFuZGxlcihjb252ZXJ0VG9FeGNlcHRpb25PcihyZXN1bHQuZXJyb3IoKSkucmVsZWFz
ZUV4Y2VwdGlvbigpKTsKIAogICAgICAgICBhdXRvIGlkZW50aWZpZXIgPSByZXN1bHQudmFsdWUo
KTsKICAgICAgICAgaWYgKCFpZGVudGlmaWVyLmlzVmFsaWQoKSkKQEAgLTg0LDcgKzg0LDcgQEAg
dm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldERpcmVjdG9yeUhhbmRsZShX
ZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGwKIAogICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OkdldERpcmVjdG9yeUhhbmRs
ZShpZGVudGlmaWVyLCBuYW1lLCBjcmVhdGVJZk5lY2Vzc2FyeSksIFtuYW1lLCBjb21wbGV0aW9u
SGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIHJlc3VsdCkgbXV0YWJs
ZSB7CiAgICAgICAgIGlmICghcmVzdWx0KQotICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25I
YW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IGNvbnZlcnRUb0V4Y2VwdGlvbkNvZGUocmVzdWx0
LmVycm9yKCkpIH0pOworICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGNvbnZl
cnRUb0V4Y2VwdGlvbk9yKHJlc3VsdC5lcnJvcigpKS5yZWxlYXNlRXhjZXB0aW9uKCkpOwogCiAg
ICAgICAgIGF1dG8gaWRlbnRpZmllciA9IHJlc3VsdC52YWx1ZSgpOwogICAgICAgICBpZiAoIWlk
ZW50aWZpZXIuaXNWYWxpZCgpKQpAQCAtOTQsMTYgKzk0LDEzIEBAIHZvaWQgV2ViRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uOjpnZXREaXJlY3RvcnlIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3Rl
bUhhbmRsCiAgICAgfSk7CiB9CiAKLXZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OjpyZW1vdmVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHksIFdlYkNvcmU6
OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6UmVtb3ZlRW50cnlDYWxsYmFjayYmIGNvbXBs
ZXRpb25IYW5kbGVyKQordm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnJlbW92
ZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgV2ViQ29yZTo6RmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKICAgICBpZiAoIW1fY29ubmVjdGlvbikKICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5k
bGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5lY3Rp
b24gaXMgbG9zdCIgfSk7CiAKICAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShN
ZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpSZW1vdmVFbnRyeShpZGVudGlmaWVyLCBu
YW1lLCBkZWxldGVSZWN1cnNpdmVseSksIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpXShhdXRvIGVycm9yKSBtdXRhYmxlIHsKLSAgICAgICAgaWYgKGVycm9y
KQotICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlv
biB7IGNvbnZlcnRUb0V4Y2VwdGlvbkNvZGUoZXJyb3IudmFsdWUoKSkgfSk7Ci0KLSAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoeyB9KTsKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVy
KGNvbnZlcnRUb0V4Y2VwdGlvbk9yKGVycm9yKSk7CiAgICAgfSk7CiB9CiAKQEAgLTExNCwxMCAr
MTExLDY2IEBAIHZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpyZXNvbHZlKFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyCiAKICAgICBtX2Nvbm5lY3Rpb24tPnNl
bmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpSZXNvbHZl
KGlkZW50aWZpZXIsIG90aGVySWRlbnRpZmllciksIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIGlm
ICghcmVzdWx0KQotICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6
OkV4Y2VwdGlvbiB7IGNvbnZlcnRUb0V4Y2VwdGlvbkNvZGUocmVzdWx0LmVycm9yKCkpIH0pOwor
ICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGNvbnZlcnRUb0V4Y2VwdGlvbk9y
KHJlc3VsdC5lcnJvcigpKS5yZWxlYXNlRXhjZXB0aW9uKCkpOworCisgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKFdURk1vdmUocmVzdWx0LnZhbHVlKCkpKTsKKyAgICB9KTsKK30KKwordm9pZCBX
ZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpHZXRBY2Nlc3NIYW5kbGVDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5k
bGVyKQoreworICAgIGlmICghbV9jb25uZWN0aW9uKQorICAgICAgICByZXR1cm4gY29tcGxldGlv
bkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAiQ29u
bmVjdGlvbiBpcyBsb3N0IiB9KTsKKworICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OkNyZWF0ZVN5bmNBY2Nlc3NIYW5k
bGUoaWRlbnRpZmllciksIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghcmVzdWx0KQorICAg
ICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGNvbnZlcnRUb0V4Y2VwdGlvbk9yKHJl
c3VsdC5lcnJvcigpKS5yZWxlYXNlRXhjZXB0aW9uKCkpOwogCiAgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKFdURk1vdmUocmVzdWx0LnZhbHVlKCkpKTsKICAgICB9KTsKIH0KIAordm9pZCBXZWJG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldFNpemUoV2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEludGVnZXJDYWxsYmFjayYm
IGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmICghbV9jb25uZWN0aW9uKQorICAgICAgICBy
ZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5r
bm93bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0IiB9KTsKKworICAgIG1fY29ubmVjdGlvbi0+
c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OkdldFNp
emVGb3JBY2Nlc3NIYW5kbGUoaWRlbnRpZmllciwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciksIFtj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIHJlc3Vs
dCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghcmVzdWx0KQorICAgICAgICAgICAgcmV0dXJuIGNv
bXBsZXRpb25IYW5kbGVyKGNvbnZlcnRUb0V4Y2VwdGlvbk9yKHJlc3VsdC5lcnJvcigpKS5yZWxl
YXNlRXhjZXB0aW9uKCkpOworCisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHJlc3VsdC52YWx1
ZSgpKTsKKyAgICB9KTsKK30KKwordm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246
OnRydW5jYXRlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIs
IFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXplLCBWb2lkQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3sKKyAgICBpZiAoIW1fY29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRp
b25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNv
bm5lY3Rpb24gaXMgbG9zdCIgfSk7CisKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNS
ZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpUcnVuY2F0ZUZvckFjY2Vzc0hh
bmRsZShpZGVudGlmaWVyLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBzaXplKSwgW2NvbXBsZXRp
b25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8gZXJyb3IpIG11dGFi
bGUgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjb252ZXJ0VG9FeGNlcHRpb25PcihlcnJv
cikpOworICAgIH0pOworfQorCit2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6
Zmx1c2goV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2Vi
Q29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIsIFZvaWRDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmICgh
bV9jb25uZWN0aW9uKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6
RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0IiB9
KTsKKworICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3
b3JrU3RvcmFnZU1hbmFnZXI6OkZsdXNoRm9yQWNjZXNzSGFuZGxlKGlkZW50aWZpZXIsIGFjY2Vz
c0hhbmRsZUlkZW50aWZpZXIpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKV0oYXV0byBlcnJvcikgbXV0YWJsZSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKGNvbnZlcnRUb0V4Y2VwdGlvbk9yKGVycm9yKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2Vi
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjbG9zZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgVm9pZENhbGxiYWNrJiYgY29t
cGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVy
biBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpVbmtub3du
RXJyb3IsICJDb25uZWN0aW9uIGlzIGxvc3QiIH0pOworCisgICAgbV9jb25uZWN0aW9uLT5zZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Q2xvc2VBY2Nl
c3NIYW5kbGUoaWRlbnRpZmllciwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciksIFtjb21wbGV0aW9u
SGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIGVycm9yKSBtdXRhYmxl
IHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY29udmVydFRvRXhjZXB0aW9uT3IoZXJyb3Ip
KTsKKyAgICB9KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKaW5kZXggYjYwMWJlNjQzNTNkYWZjNzc3YzZi
Y2U0MmIxZTlmMjkxMzkyMzBjMi4uMDI4NGM5YmYzODgyYjJjZjRjMWE2NjMzYWZlZjQyN2U2YmE3
OTk5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaApA
QCAtNTEsOSArNTEsMTUgQEAgcHJpdmF0ZToKICAgICB2b2lkIGlzU2FtZUVudHJ5KFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpTYW1lRW50cnlD
YWxsYmFjayYmKTsKICAgICB2b2lkIGdldEZpbGVIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2Fy
eSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRIYW5kbGVDYWxsYmFj
ayYmKTsKICAgICB2b2lkIGdldERpcmVjdG9yeUhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5
LCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhhbmRsZUNhbGxiYWNr
JiYpOwotICAgIHZvaWQgcmVtb3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgV2ViQ29y
ZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpSZW1vdmVFbnRyeUNhbGxiYWNrJiYpOwor
ICAgIHZvaWQgcmVtb3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgV2ViQ29yZTo6Rmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJik7CiAgICAgdm9pZCByZXNv
bHZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OjpSZXNvbHZlQ2FsbGJhY2smJik7CiAKKyAgICB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUo
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbjo6R2V0QWNjZXNzSGFuZGxlQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBnZXRT
aXplKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6SW50ZWdl
ckNhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgdHJ1bmNhdGUoRmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3Qg
c2l6ZSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2sm
JikgZmluYWw7CisgICAgdm9pZCBmbHVzaChGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIGNsb3NlKEZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50
aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Vm9pZENhbGxiYWNr
JiYpIGZpbmFsOworCiAgICAgUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJTdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggMmFjYjVmYWFmM2Y0NmQ3
Zjg0ZGJiYmI4NzMzMmQzMzY1NDkwMzc2ZC4uZTA1Njk4ZjM0YWYzMTQxMDEyZTNhZmQyNmYxNmVl
YmIwYWYxMjI0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlN0b3JhZ2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3RvcmFnZUNvbm5lY3Rpb24uY3BwCkBAIC01Niw3ICs1
Niw3IEBAIHZvaWQgV2ViU3RvcmFnZUNvbm5lY3Rpb246OmZpbGVTeXN0ZW1HZXREaXJlY3Rvcnko
Y29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvCiAgICAgYXV0byYgY29ubmVjdGlvbiA9IFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNv
bm5lY3Rpb24oKTsKICAgICBjb25uZWN0aW9uLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpGaWxlU3lzdGVtR2V0RGlyZWN0b3J5KG9yaWdpbiksIFtj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIHJlc3Vs
dCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghcmVzdWx0KQotICAgICAgICAgICAgcmV0dXJuIGNv
bXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IGNvbnZlcnRUb0V4Y2VwdGlvbkNv
ZGUocmVzdWx0LmVycm9yKCkpIH0pOworICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5k
bGVyKGNvbnZlcnRUb0V4Y2VwdGlvbk9yKHJlc3VsdC5lcnJvcigpKS5yZWxlYXNlRXhjZXB0aW9u
KCkpOwogCiAgICAgICAgIGF1dG8gaWRlbnRpZmllciA9IHJlc3VsdC52YWx1ZSgpOwogICAgICAg
ICBpZiAoIWlkZW50aWZpZXIuaXNWYWxpZCgpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGFiN2ZmOTIyZjBmZWVkZGY1ZjA2
MjlhYjdmMjgzZGY3NThkMGRmNWUuLmE4N2QwNjA1Y2JhMjBjOWM0MTAzNzAzYWI3ZmUzODk5OTZk
YjM0MDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0xMC0wNSAgU2lodWkgTGl1ICA8c2lo
dWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzMTE4NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODM4NDc4NTk+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdG9yYWdlL2ZpbGVz
eXN0ZW1hY2Nlc3MvcmVzb3VyY2VzL3N5bmMtYWNjZXNzLWhhbmRsZS1iYXNpY3MuanM6IEFkZGVk
LgorICAgICAgICAoZmluaXNoVGVzdCk6CisgICAgICAgIChnZXREaXJlY3RvcnkpOgorICAgICAg
ICAqIHN0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtYmFzaWNzLXdv
cmtlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvZmlsZXN5c3RlbWFj
Y2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtYmFzaWNzLXdvcmtlci5odG1sOiBBZGRlZC4KKwogMjAy
MS0xMC0wNCAgQ2FtZXJvbiBNY0Nvcm1hY2sgIDxoZXljYW1AYXBwbGUuY29tPgogCiAgICAgICAg
IENob29zZSBhbiBhcHByb3ByaWF0ZSBjb2xvciBzcGFjZSB3aGVuIGNvbnZlcnRpbmcgYW4gU1ZH
IGltYWdlIGludG8gYSBOYXRpdmVJbWFnZSBmb3IgY2FudmFzIGRyYXdJbWFnZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggYTc0MjdkYmNiMGE4ZmEzOTRiNDI5MzhjZTc0MDAwMDg0
ZjE1NmMzOS4uMzRjNDU0ODRiODA5ZGQ2YTJhMmNkNDQzYTkzMGE3MTVlZTUyZTdkZiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMTAtMDUgIFNp
aHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9y
IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzExODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzODQ3
ODU5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL2ZpbGUtc3lzdGVtLWFjY2Vzcy9zYW5kYm94ZWRfRmlsZVN5c3Rl
bUZpbGVIYW5kbGUtc3luYy1hY2Nlc3MtaGFuZGxlLWxvY2suaHR0cHMudGVudGF0aXZlLndvcmtl
ci1leHBlY3RlZC50eHQ6CisKIDIwMjEtMTAtMDQgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZp
ZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBTdG9wIHBhcnNpbmcgY29udGV4dC1zZW5zaXRpdmUg
Y29sb3JzIGluIG92ZXJyaWRlLWNvbG9yCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZpbGUtc3lzdGVtLWFjY2Vzcy9zYW5kYm94ZWRfRmls
ZVN5c3RlbUZpbGVIYW5kbGUtc3luYy1hY2Nlc3MtaGFuZGxlLWxvY2suaHR0cHMudGVudGF0aXZl
Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZpbGUtc3lzdGVtLWFjY2Vzcy9zYW5kYm94ZWRfRmlsZVN5c3RlbUZpbGVIYW5k
bGUtc3luYy1hY2Nlc3MtaGFuZGxlLWxvY2suaHR0cHMudGVudGF0aXZlLndvcmtlci1leHBlY3Rl
ZC50eHQKaW5kZXggYjQ2MjhhN2RmMjJkZmU4OGE3YjM3MTJmZmIzNjdkZmNjZWVlODcwNC4uN2Rh
ZGMyZDRmMDZkODQ0YTIxMmY2NDA0YzBkMWFiOWY1NjM3MGNiOSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9maWxlLXN5c3RlbS1hY2Nlc3Mv
c2FuZGJveGVkX0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLXN5bmMtYWNjZXNzLWhhbmRsZS1sb2NrLmh0
dHBzLnRlbnRhdGl2ZS53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmlsZS1zeXN0ZW0tYWNjZXNzL3NhbmRib3hlZF9G
aWxlU3lzdGVtRmlsZUhhbmRsZS1zeW5jLWFjY2Vzcy1oYW5kbGUtbG9jay5odHRwcy50ZW50YXRp
dmUud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKIAotRkFJTCBUaGVyZSBjYW4g
b25seSBiZSBvbmUgb3BlbiBhY2Nlc3MgaGFuZGxlIGF0IGFueSBnaXZlbiB0aW1lIHByb21pc2Vf
dGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjog
ZmlsZUhhbmRsZS5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4g
J2ZpbGVIYW5kbGUuY3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpJywgJ2ZpbGVIYW5kbGUuY3JlYXRl
U3luY0FjY2Vzc0hhbmRsZScgaXMgdW5kZWZpbmVkKSIKLUZBSUwgQW4gYWNjZXNzIGhhbmRsZSBm
cm9tIG9uZSBmaWxlIGRvZXMgbm90IGludGVyZmVyZSB3aXRoIHRoZSBjcmVhdGlvbiBvZiBhbiBh
Y2Nlc3MgaGFuZGxlIG9uIGFub3RoZXIgZmlsZSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWpl
Y3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IGZvb0ZpbGVIYW5kbGUuY3JlYXRl
U3luY0FjY2Vzc0hhbmRsZSBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdmb29GaWxlSGFuZGxlLmNy
ZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKScsICdmb29GaWxlSGFuZGxlLmNyZWF0ZVN5bmNBY2Nlc3NI
YW5kbGUnIGlzIHVuZGVmaW5lZCkiCitQQVNTIFRoZXJlIGNhbiBvbmx5IGJlIG9uZSBvcGVuIGFj
Y2VzcyBoYW5kbGUgYXQgYW55IGdpdmVuIHRpbWUKK1BBU1MgQW4gYWNjZXNzIGhhbmRsZSBmcm9t
IG9uZSBmaWxlIGRvZXMgbm90IGludGVyZmVyZSB3aXRoIHRoZSBjcmVhdGlvbiBvZiBhbiBhY2Nl
c3MgaGFuZGxlIG9uIGFub3RoZXIgZmlsZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2ZpbGVzeXN0ZW1hY2Nlc3MvcmVzb3VyY2VzL3N5bmMtYWNjZXNzLWhhbmRsZS1iYXNpY3Mu
anMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3MvcmVzb3VyY2VzL3N5bmMt
YWNjZXNzLWhhbmRsZS1iYXNpY3MuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTY3MTI1YTQ2ZGM2YjZlYzNmY2Zl
ZjEzOTRhODYwOGM4NjUyODcyYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvZmlsZXN5c3RlbWFjY2Vzcy9yZXNvdXJjZXMvc3luYy1hY2Nlc3MtaGFuZGxlLWJhc2ljcy5q
cwpAQCAtMCwwICsxLDgxIEBACitpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CisgICAgaW1wb3J0
U2NyaXB0cygnLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMnKTsKK30KKworZGVzY3JpcHRp
b24oIlRoaXMgdGVzdCBjaGVja3MgYmFzaWMgZnVudGlvbmFsaXRpZXMgb2YgRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGUuIik7CisKK3ZhciByb290SGFuZGxlLCBmaWxlSGFuZGxlLCBhY2Nlc3NI
YW5kbGUxLCBhY2Nlc3NIYW5kbGUyLCBjcmVhdGVFcnJvcjsKKworZnVuY3Rpb24gZmluaXNoVGVz
dChlcnJvcikKK3sKKyAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgdGVzdEZhaWxlZChlcnJvcik7
CisgICAgfQorICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitmdW5jdGlvbiBnZXREaXJlY3Rvcnko
KSB7CisgICAgbmF2aWdhdG9yLnN0b3JhZ2UuZ2V0RGlyZWN0b3J5KCkudGhlbigoaGFuZGxlKSA9
PiB7CisgICAgICAgIHJvb3RIYW5kbGUgPSBoYW5kbGU7CisgICAgICAgIGNyZWF0ZUZpbGVIYW5k
bGUocm9vdEhhbmRsZSk7CisgICAgfSkuY2F0Y2goKGVycm9yKSA9PiB7CisgICAgICAgIGZpbmlz
aFRlc3QoZXJyb3IpOworICAgIH0pOworfQorCitmdW5jdGlvbiBjcmVhdGVGaWxlSGFuZGxlKGZy
b21IYW5kbGUpIHsKKyAgICBmcm9tSGFuZGxlLmdldEZpbGVIYW5kbGUoInN5bmMtYWNjZXNzLWhh
bmRsZS50eHQiLCB7ICJjcmVhdGUiIDogdHJ1ZSB9KS50aGVuKChoYW5kbGUpID0+IHsKKyAgICAg
ICAgZmlsZUhhbmRsZSA9IGhhbmRsZTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJm
aWxlSGFuZGxlLm5hbWUiLCAic3luYy1hY2Nlc3MtaGFuZGxlLnR4dCIpOworICAgICAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoImZpbGVIYW5kbGUua2luZCIsICJmaWxlIik7CisgICAgICAgIGNy
ZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoZmlsZUhhbmRsZSk7CisgICAgfSkuY2F0Y2goKGVycm9yKSA9
PiB7CisgICAgICAgIGZpbmlzaFRlc3QoZXJyb3IpOworICAgIH0pOworfQorCitmdW5jdGlvbiBj
cmVhdGVTeW5jQWNjZXNzSGFuZGxlKGZyb21IYW5kbGUpIHsKKyAgICBmcm9tSGFuZGxlLmNyZWF0
ZVN5bmNBY2Nlc3NIYW5kbGUoKS50aGVuKChoYW5kbGUpID0+IHsKKyAgICAgICAgYWNjZXNzSGFu
ZGxlMSA9IGhhbmRsZTsKKyAgICAgICAgZGVidWcoImFjY2Vzc0hhbmRsZTEgaXMgY3JlYXRlZCIp
OworICAgICAgICBnZXRTaXplKGFjY2Vzc0hhbmRsZTEpOworICAgIH0pLmNhdGNoKChlcnJvcikg
PT4geworICAgICAgICBmaW5pc2hUZXN0KGVycm9yKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24g
Z2V0U2l6ZShhY2Nlc3NIYW5kbGUpIHsKKyAgICBhY2Nlc3NIYW5kbGUuZ2V0U2l6ZSgpLnRoZW4o
KHJlc3VsdCkgPT4geworICAgICAgICBzaXplID0gcmVzdWx0OworICAgICAgICBzaG91bGRCZSgi
c2l6ZSIsICIwIik7CisgICAgICAgIGNyZWF0ZVNlY29uZFN5bmNBY2Vzc0hhbmRsZShmaWxlSGFu
ZGxlKTsKKyAgICB9KS5jYXRjaCgoZXJyb3IpID0+IHsKKyAgICAgICAgZmluaXNoVGVzdChlcnJv
cik7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZVNlY29uZFN5bmNBY2Vzc0hhbmRsZShm
cm9tSGFuZGxlKSB7CisgICAgZnJvbUhhbmRsZS5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlKCkudGhl
bigoaGFuZGxlKSA9PiB7CisgICAgICAgIGFjY2Vzc0hhbmRsZTIgPSBoYW5kbGU7CisgICAgICAg
IC8vIFNlY29uZCBjcmVhdGlvbiBzaG91bGQgc3VjY2VlZC4KKyAgICAgICAgZGVidWcoImFjY2Vz
c0hhbmRsZTIgaXMgY3JlYXRlZCIpOworICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgfSkuY2F0
Y2goKGVycm9yKSA9PiB7CisgICAgICAgIC8vIEZpcnN0IGNyZWF0aW9uIHNob3VsZCBmYWlsIGFz
IHRoZXJlIGlzIGFuIGFjdGl2ZSBoYW5kbGUuCisgICAgICAgIGNyZWF0ZUVycm9yID0gZXJyb3I7
CisgICAgICAgIGRlYnVnKCJhY2Nlc3NIYW5kbGUyIGNhbm5vdCBiZSBjcmVhdGVkIik7CisgICAg
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiY3JlYXRlRXJyb3IudG9TdHJpbmcoKSIsICJJbnZh
bGlkU3RhdGVFcnJvcjogVGhlIG9iamVjdCBpcyBpbiBhbiBpbnZhbGlkIHN0YXRlLiIpOworICAg
ICAgICBjbG9zZSgpOworICAgIH0pOworfQorCitmdW5jdGlvbiBjbG9zZSgpIHsKKyAgICBhY2Nl
c3NIYW5kbGUxLmNsb3NlKCkudGhlbigocmVzdWx0KSA9PiB7CisgICAgICAgIGRlYnVnKCJhY2Nl
c3NIYW5kbGUxIGlzIGNsb3NlZCIpOworICAgICAgICBjcmVhdGVTZWNvbmRTeW5jQWNlc3NIYW5k
bGUoZmlsZUhhbmRsZSk7CisgICAgfSkuY2F0Y2goKGVycm9yKSA9PiB7CisgICAgICAgIGZpbmlz
aFRlc3QoZXJyb3IpOworICAgIH0pOworfQorCitnZXREaXJlY3RvcnkoKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUt
YmFzaWNzLXdvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0
ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLWJhc2ljcy13b3JrZXItZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQ3NGY1ZDcxNTU3MzA3ZTRiZDE0YzE0NmJhOTNhYmQ1MmRiOWE0ZjQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1h
Y2Nlc3MtaGFuZGxlLWJhc2ljcy13b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAK
K1tXb3JrZXJdIFRoaXMgdGVzdCBjaGVja3MgYmFzaWMgZnVudGlvbmFsaXRpZXMgb2YgRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitT
dGFydGluZyB3b3JrZXI6IHJlc291cmNlcy9zeW5jLWFjY2Vzcy1oYW5kbGUtYmFzaWNzLmpzCitQ
QVNTIFtXb3JrZXJdIGZpbGVIYW5kbGUubmFtZSBpcyAic3luYy1hY2Nlc3MtaGFuZGxlLnR4dCIK
K1BBU1MgW1dvcmtlcl0gZmlsZUhhbmRsZS5raW5kIGlzICJmaWxlIgorW1dvcmtlcl0gYWNjZXNz
SGFuZGxlMSBpcyBjcmVhdGVkCitQQVNTIFtXb3JrZXJdIHNpemUgaXMgMAorW1dvcmtlcl0gYWNj
ZXNzSGFuZGxlMiBjYW5ub3QgYmUgY3JlYXRlZAorUEFTUyBbV29ya2VyXSBjcmVhdGVFcnJvci50
b1N0cmluZygpIGlzICJJbnZhbGlkU3RhdGVFcnJvcjogVGhlIG9iamVjdCBpcyBpbiBhbiBpbnZh
bGlkIHN0YXRlLiIKK1tXb3JrZXJdIGFjY2Vzc0hhbmRsZTEgaXMgY2xvc2VkCitbV29ya2VyXSBh
Y2Nlc3NIYW5kbGUyIGlzIGNyZWF0ZWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVz
eXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLWJhc2ljcy13b3JrZXIuaHRtbCBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtYmFzaWNz
LXdvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdmZWMzNmE1OTYwYjRhYWEyMWEyZjgwYWQxMWNlZDRi
N2VjZWQ5ZDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0
ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLWJhc2ljcy13b3JrZXIuaHRtbApAQCAtMCwwICsx
LDkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0Pgord29ya2VyID0gc3Rh
cnRXb3JrZXIoJ3Jlc291cmNlcy9zeW5jLWFjY2Vzcy1oYW5kbGUtYmFzaWNzLmpzJyk7PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>
<flag name="commit-queue"
          id="464079"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440226</attachid>
            <date>2021-10-05 10:02:47 -0700</date>
            <delta_ts>2021-10-05 10:21:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231185-20211005100245.patch</filename>
            <type>text/plain</type>
            <size>93488</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGE4NDgwMmU4NjAzYjY5ZDZiNGYwOWI2
NTQyNjY5ZTQzMTU3ZjQ1N2MuLjkzZWVhNWE0YWE5YWQ4NjQ1MzBkZTYyMTI2OTJkY2E0MWY1ZjBk
Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEtMTAtMDUgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzExODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzODQ3ODU5PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNl
cy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sOgorICAgICAgICAqIHd0Zi9GaWxlU3lz
dGVtLmg6CisgICAgICAgICogd3RmL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3BwOgorICAgICAgICAo
V1RGOjpGaWxlU3lzdGVtSW1wbDo6Zmx1c2hGaWxlKToKKyAgICAgICAgKiB3dGYvcG9zaXgvRmls
ZVN5c3RlbVBPU0lYLmNwcDoKKyAgICAgICAgKFdURjo6RmlsZVN5c3RlbUltcGw6OmZsdXNoRmls
ZSk6CisgICAgICAgICogd3RmL3dpbi9GaWxlU3lzdGVtV2luLmNwcDoKKyAgICAgICAgKFdURjo6
RmlsZVN5c3RlbUltcGw6OmZsdXNoRmlsZSk6CisKIDIwMjEtMTAtMDUgIERhdmlkIEtpbHplciAg
PGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBGb2xsb3ctdXAgIzI6IFdURjo6UmV0YWlu
UHRyPD4gYWxsb3dzIGFzc2lnbm1lbnQgb2YgdHdvIHBvaW50ZXIgdHlwZXMgdGhhdCBhcmUgbm90
IGFzc2lnbmFibGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzNDNiMjc2MjZjOGMyY2NiYTY2NzUwMGJhNzgxZmIy
ZGM2MmEwMjVjLi4yYjkwYmRlZTNhNTY5ODhkZDM5OTMxMmJjYjFjNjRiNjFkNWM3YjYyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNjAgQEAKKzIwMjEtMTAtMDUgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzExODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzODQ3ODU5PgorCisgICAgICAgIElt
cGxlbWVudCBiYXNpYyBzdXBwb3J0IGZvciBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSBhcyBw
cm9wb3NhbDoKKyAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL1dJQ0cvZmlsZS1zeXN0ZW0tYWNj
ZXNzL2Jsb2IvbWFpbi9BY2Nlc3NIYW5kbGUubWQKKworICAgICAgICBGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZSBjYW4gYmUgY3JlYXRlZCB2aWEgRmlsZVN5c3RlbUZpbGVIYW5kbGUsIGFuZCBp
dCBjb21tdWljYXRlcyB3aXRoIGJhY2tlbmQgdmlhIAorICAgICAgICBGaWxlU3lzdGVtRmlsZUhh
bmRsZS4KKworICAgICAgICBUZXN0OiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nl
c3MtaGFuZGxlLWJhc2ljcy13b3JrZXIuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy5tYWtlOgorICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpnZXRTaXplKToKKyAgICAgICAgKFdlYkNv
cmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjp0cnVuY2F0ZSk6CisgICAgICAgIChXZWJDb3JlOjpG
aWxlU3lzdGVtRmlsZUhhbmRsZTo6Zmx1c2gpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3Rl
bUZpbGVIYW5kbGU6OmNsb3NlKToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbUZpbGVIYW5kbGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaWRsOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OkZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlOjp+RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OnRydW5jYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpnZXRTaXplKToKKyAgICAgICAgKFdlYkNvcmU6
OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpmbHVzaCk6CisgICAgICAgIChXZWJDb3JlOjpG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y2xvc2UpOgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmRpZENsb3NlKToKKyAgICAgICAgKiBNb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaDogQWRkZWQuCisgICAg
ICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6c2Nv
cGVDbG9zZWQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpyZW1vdmVFbnRyeSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb246OmRpZENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjb21wbGV0ZUludGVn
ZXJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OmNvbXBsZXRlVm9pZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
ckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldFNp
emUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
Ojp0cnVuY2F0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OmZsdXNoKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbjo6Y2xvc2UpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uOjpkaWRSZW1vdmVFbnRyeSk6IERlbGV0ZWQuCisgICAgICAgICog
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bi5oOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5h
bWVzLmg6CisKIDIwMjEtMTAtMDUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5j
b20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI4MzMzNSk6IE1vbWVudHVtIHNjcm9sbGluZyBp
cyBubyBsb25nZXIgbG9ja2VkIHRvIGFuIGF4aXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZjg1ZGYzZjBhZTNiOWYw
YzYzYWE3YzkxM2U4MjYyNzJmYTVmYTNlMy4uMmE2NzliOGI2ZGJhMzVkOTI1ZWRjNWMwMmIyYTkx
YTQ5ZTMwODk1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MyBAQAorMjAyMS0xMC0wNSAgU2lodWkg
TGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzMTE4NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODM4NDc4NTk+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VycmVu
dGx5IHdlIG9ubHkgYWxsb3cgb25lIG9wZW4gYWNjZXNzIGhhbmRsZSBvbiBvbmUgZmlsZS4gU2Vj
b25kIGFjY2VzcyBoYW5kbGUgY2FuIGJlIGNyZWF0ZWQgYWZ0ZXIgdGhlIGZpcnN0CisgICAgICAg
IGlzIGNsb3NlZC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvci5oOgorICAgICAgICAoV2ViS2l0Ojpjb252ZXJ0VG9FeGNlcHRpb25Pcik6
CisgICAgICAgIChXZWJLaXQ6OmNvbnZlcnRUb0V4Y2VwdGlvbkNvZGUpOiBEZWxldGVkLgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Y3JlYXRlU3luY0Fj
Y2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpn
ZXRTaXplKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OnRydW5j
YXRlKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmZsdXNoKToK
KyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmNsb3NlKToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmg6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXI6OmNvbm5lY3Rp
b25DbG9zZWQpOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXI6OmFj
cXVpcmVMb2NrRm9yRmlsZSk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlTWFu
YWdlcjo6cmVsZWFzZUxvY2tGb3JGaWxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9y
YWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1N0b3JhZ2VNYW5hZ2VyOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpnZXRTaXplRm9yQWNjZXNzSGFuZGxlKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjp0cnVuY2F0ZUZvckFjY2Vzc0hh
bmRsZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Zmx1c2hGb3JB
Y2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmNs
b3NlQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdv
cmtTdG9yYWdlTWFuYWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0
d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
L21lc3NhZ2VzLnB5OgorICAgICAgICAodHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNs
YXJlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb246OmdldEZpbGVIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldERpcmVjdG9yeUhhbmRsZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6cmVtb3ZlRW50cnkpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnJlc29sdmUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0ZVN5
bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OmdldFNpemUpOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb246OnRydW5jYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpmbHVzaCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6Y2xvc2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlN0b3JhZ2VDb25uZWN0aW9uOjpmaWxlU3lzdGVtR2V0RGlyZWN0b3J5KToKKwog
MjAyMS0xMC0wNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFk
ZCBTUEkgdG8gbGF1bmNoIGEgc2VydmljZSBzZXJ2aWNlIHdvcmtlciBpbiBhIFdLV2ViVmlldyBh
bmQgZXhwb3NlIHNlcnZpY2Ugd29ya2VyIHRvIGluamVjdGVkIGJ1bmRsZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFs
LnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBl
cmltZW50YWwueWFtbAppbmRleCA1MjVlNjAzNTJmNThlZTRhNTZlYjQ4ODBjZDA1NDZkOWMwM2Q2
ZmFkLi5iMTEyNjQ3NjA0ZmRhOWRhZGY0NDY0OTQ5ZjIxZWVhNzk5ZjI1ZTVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50
YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5j
ZXNFeHBlcmltZW50YWwueWFtbApAQCAtMjYsNiArMjYsMTggQEAKICMgVGhleSBtdXN0IGluY2x1
ZGUgYSBodW1hblJlYWRhYmxlTmFtZSBhbmQgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uLiBUaGlz
IGlzCiAjICAgdGhlIHRleHQgZXhwb3NlZCB0byB0aGUgdXNlciBmcm9tIHRoZSBXZWJLaXQgY2xp
ZW50LgogCitBY2Nlc3NIYW5kbGVFbmFibGVkOgorICB0eXBlOiBib29sCisgIGh1bWFuUmVhZGFi
bGVOYW1lOiAiQWNjZXNzSGFuZGxlIEFQSSIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAi
RW5hYmxlIEFjY2Vzc0hhbmRsZSBBUEkiCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdh
Y3k6CisgICAgICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IGZh
bHNlCisgICAgV2ViQ29yZToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisKIEFjY2Vzc2liaWxpdHlP
YmplY3RNb2RlbEVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgaHVtYW5SZWFkYWJsZU5hbWU6ICJB
Y2Nlc3NpYmlsaXR5IE9iamVjdCBNb2RlbCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Zp
bGVTeXN0ZW0uaCBiL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uaAppbmRleCBjNDUwMWQxNGE3
NDJhYTIxZmE2ZGM3YTczZjgzMDllYzZhODdmNGQ1Li5iMTA3MzcwNjk4ZTFhZDFkYTc5NGE3ZTQ2
NmNjMDA3MTJhN2Q4NjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9GaWxlU3lzdGVtLmgK
KysrIGIvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5oCkBAIC0xNTQsNiArMTU0LDcgQEAgV1RG
X0VYUE9SVF9QUklWQVRFIHZvaWQgY2xvc2VGaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSYpOwogLy8g
UmV0dXJucyB0aGUgcmVzdWx0aW5nIG9mZnNldCBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGZp
bGUgaWYgc3VjY2Vzc2Z1bCwgLTEgb3RoZXJ3aXNlLgogV1RGX0VYUE9SVF9QUklWQVRFIGxvbmcg
bG9uZyBzZWVrRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUsIGxvbmcgbG9uZyBvZmZzZXQsIEZpbGVT
ZWVrT3JpZ2luKTsKIFdURl9FWFBPUlRfUFJJVkFURSBib29sIHRydW5jYXRlRmlsZShQbGF0Zm9y
bUZpbGVIYW5kbGUsIGxvbmcgbG9uZyBvZmZzZXQpOworV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wg
Zmx1c2hGaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSk7CiAvLyBSZXR1cm5zIG51bWJlciBvZiBieXRl
cyBhY3R1YWxseSByZWFkIGlmIHN1Y2Nlc3NmdWwsIC0xIG90aGVyd2lzZS4KIFdURl9FWFBPUlRf
UFJJVkFURSBpbnQgd3JpdGVUb0ZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlLCBjb25zdCB2b2lkKiBk
YXRhLCBpbnQgbGVuZ3RoKTsKIC8vIFJldHVybnMgbnVtYmVyIG9mIGJ5dGVzIGFjdHVhbGx5IHdy
aXR0ZW4gaWYgc3VjY2Vzc2Z1bCwgLTEgb3RoZXJ3aXNlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL0ZpbGVT
eXN0ZW1HbGliLmNwcAppbmRleCA1NDYyNDRjNzA0MTA4NGNiNGI0MmU5ZjBhYWViYThhMjYyOTAz
ZmQzLi5mODEyN2YwYmEwZjQ0ZTQ5ZWYyODU5ZTE1MTgwMDhjMWIzMDQ4NDEyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcApAQCAtMjEzLDYgKzIxMywxMSBAQCBib29sIHRy
dW5jYXRlRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlLCBsb25nIGxvbmcgb2Zmc2V0KQog
ICAgIHJldHVybiBnX3NlZWthYmxlX3RydW5jYXRlKEdfU0VFS0FCTEUoZ19pb19zdHJlYW1fZ2V0
X291dHB1dF9zdHJlYW0oR19JT19TVFJFQU0oaGFuZGxlKSkpLCBvZmZzZXQsIG51bGxwdHIsIG51
bGxwdHIpOwogfQogCitib29sIGZsdXNoRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlKQor
eworICAgIHJldHVybiBnX291dHB1dF9zdHJlYW1fZmx1c2goZ19pb19zdHJlYW1fZ2V0X291dHB1
dF9zdHJlYW0oR19JT19TVFJFQU0oaGFuZGxlKSksIG51bGxwdHIsIG51bGxwdHIpOworfQorCiBp
bnQgd3JpdGVUb0ZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSwgY29uc3Qgdm9pZCogZGF0
YSwgaW50IGxlbmd0aCkKIHsKICAgICBpZiAoIWxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9wb3NpeC9G
aWxlU3lzdGVtUE9TSVguY3BwCmluZGV4IGIxMzM4MjRlYzJhMTE1ZWE1MGM3YzM0ZTBmMWE1ZWNl
ODA0MDJkNGMuLjc5NTY3MGZkNmQ4MDI3OGRmNmMxNzBiMjE2MmM0OGI1MmU5Y2JiZWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHAKKysrIGIvU291
cmNlL1dURi93dGYvcG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNwcApAQCAtMTE4LDYgKzExOCwxMSBA
QCBib29sIHRydW5jYXRlRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlLCBsb25nIGxvbmcg
b2Zmc2V0KQogICAgIHJldHVybiAhZnRydW5jYXRlKGhhbmRsZSwgb2Zmc2V0KTsKIH0KIAorYm9v
bCBmbHVzaEZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSkKK3sKKyAgICByZXR1cm4gIWZz
eW5jKGhhbmRsZSk7Cit9CisKIGludCB3cml0ZVRvRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFu
ZGxlLCBjb25zdCB2b2lkKiBkYXRhLCBpbnQgbGVuZ3RoKQogewogICAgIGRvIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL3dpbi9GaWxlU3lzdGVtV2luLmNwcCBiL1NvdXJjZS9XVEYvd3Rm
L3dpbi9GaWxlU3lzdGVtV2luLmNwcAppbmRleCBmZmE2MjkzYzczZTg0ZWVlMGJjZTEyY2M0ZDBk
YTdjZGNhNjBiODkzLi4yYmM4ZjIwMTA1MWM3ZDg1YjE3YjQ0YWMyNzM4ZDJlZDAxZjJkOTRhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi93aW4vRmlsZVN5c3RlbVdpbi5jcHAKKysrIGIvU291
cmNlL1dURi93dGYvd2luL0ZpbGVTeXN0ZW1XaW4uY3BwCkBAIC0zMDMsNiArMzAzLDEyIEBAIGJv
b2wgdHJ1bmNhdGVGaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUsIGxvbmcgbG9uZyBvZmZz
ZXQpCiAgICAgcmV0dXJuIFNldEZpbGVJbmZvcm1hdGlvbkJ5SGFuZGxlKGhhbmRsZSwgRmlsZUVu
ZE9mRmlsZUluZm8sICZlb2ZJbmZvLCBzaXplb2YoRklMRV9FTkRfT0ZfRklMRV9JTkZPKSk7CiB9
CiAKK2Jvb2wgZmx1c2hGaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUpCit7CisgICAgLy8g
Tm90IGltcGxlbWVudGVkLgorICAgIHJldHVybiBmYWxzZTsKK30KKwogaW50IHdyaXRlVG9GaWxl
KFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUsIGNvbnN0IHZvaWQqIGRhdGEsIGludCBsZW5ndGgp
CiB7CiAgICAgaWYgKCFpc0hhbmRsZVZhbGlkKGhhbmRsZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IDMwMzk0NzU5NzFkNGZiN2Y2ZjliZDFhMDZiOGZmMjZjYzUwMTdjYmQuLmRmODFlYjZhNzFj
Y2M4NmNlMWJjOTljNjFhNWEzYmI2ZmJkMzQ0OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0y
OTcsNiArMjk3LDcgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5pZGwKICAgICBNb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaWRsCiAgICAgTW9kdWxl
cy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaWRsCisgICAgTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbAogICAgIE1vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9TdG9yYWdlTWFuYWdlcitGaWxlU3lzdGVtQWNjZXNzLmlkbAogCiAg
ICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5pZGwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IGMwYmU4NmE3MzU0NDIyZjFm
YmRhMGVhMGM2YWQzNDEzOTliZWM5MmUuLmUyZTg5NjE5MjNjMGM5OTZiM2ZkMDgxNGNjNTAyM2I5
MmY2MmY0ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0
LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNm
aWxlbGlzdApAQCAtMTI2LDYgKzEyNiw3IEBAICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvZmV0Y2gv
V2luZG93T3JXb3JrZXJHbG9iYWxTY29wZStGZXRjaC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmlkbAogJChQUk9K
RUNUX0RJUikvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmlk
bAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5k
bGUuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGUuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvU3RvcmFnZU1hbmFnZXIrRmlsZVN5c3RlbUFjY2Vzcy5pZGwKICQoUFJPSkVDVF9ESVIp
L01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9nYW1l
cGFkL0dhbWVwYWRCdXR0b24uaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
LW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDIxMTEyY2UxNjQ3ZGQ1ZDRjNmFmNjU5MThiZmIzNDJh
NGRjYmNlYmIuLmY0ZjQ4MjI4YmRjNDYyMzAxN2ZkNDQ5ZDEyNjQxNjQ4MGVlN2ZiYWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC05
MDcsNiArOTA3LDggQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNGaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTRmlsZVN5c3RlbUZpbGVIYW5kbGUuaAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNGaWxlU3lzdGVtSGFuZGxlLmNwcAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNGaWxlU3lzdGVt
SGFuZGxlLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRmlsbE1vZGUuY3BwCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0ZpbGxNb2RlLmgK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRm9jdXNFdmVu
dC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDkyZDNjNDcxOTYwYmNjNzJl
ODkyOTA2M2VhZjViNTdkOTc0M2JlNTQuLmJlOGFjMjcyNDk4ZGQyNGU2OGI2OWQ5YmQ0MjU3MDQ1
NWQ5OWNlNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UK
KysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTU1LDYgKzE1NSw3
IEBAIEpTX0JJTkRJTkdfSURMUyA6PSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5pZGwgXAogICAgICQoV2ViQ29yZSkv
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmlkbCBcCiAgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5pZGwg
XAorCSQoV2ViQ29yZSkvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
U3RvcmFnZU1hbmFnZXIrRmlsZVN5c3RlbUFjY2Vzcy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9k
dWxlcy9nYW1lcGFkL0dhbWVwYWQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvZ2FtZXBh
ZC9HYW1lcGFkQnV0dG9uLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCAzOTRjYjNiYjZlMWEz
MjcyNDk1MWIyMjY1N2VkOTU5OWZkMzc4ZjgyLi45YTU5YzMwYjk1MmQyMWU0NjY0NmZlNjE4YjVj
NzRhNjllNWFmMzdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTQyLDYgKzQyLDcgQEAgc2V0KFdl
YkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIE1vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmgKICAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaAogICAgIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9G
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAorICAgIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oCiAgICAgTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL1N0b3JhZ2VNYW5hZ2VyRmlsZVN5c3RlbUFjY2Vzcy5oCiAgICAgTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCiAgICAgTW9kdWxl
cy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbkNhbGxi
YWNrSWRlbnRpZmllci5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcAppbmRleCBiMjEy
NTQ3YjVmZTliOWJkMjU2N2ZiMWIwOTQ4MGJiZGQwZjE5ZjY3Li5hNjlhNzJjNmI2OGEyZDZjZDQ1
YzhmYjczNDRiYTQzYjU4NzMzMTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAK
QEAgLTI3LDcgKzI3LDkgQEAKICNpbmNsdWRlICJGaWxlU3lzdGVtRmlsZUhhbmRsZS5oIgogCiAj
aW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaCIKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5o
IgorI2luY2x1ZGUgIkpTRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaCIKICNpbmNsdWRlIDx3
dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00OSw1ICs1
MSw0MSBAQCB2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpnZXRGaWxlKERPTVByb21pc2VEZWZl
cnJlZDxJRExJbnRlcmZhY2U8RmlsZT4+JiYgcHJvbQogICAgIHByb21pc2UucmVqZWN0KEV4Y2Vw
dGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAiTm90IGltcGxlbWVudGVkIl9zIH0pOwogfQogCit2
b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKERPTVByb21p
c2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+PiYmIHBy
b21pc2UpCit7CisgICAgY29ubmVjdGlvbigpLmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoaWRlbnRp
ZmllcigpLCBbcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIHByb21pc2UgPSBXVEZNb3Zl
KHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmIChyZXN1bHQuaGFz
RXhjZXB0aW9uKCkpCisgICAgICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QocmVzdWx0LnJl
bGVhc2VFeGNlcHRpb24oKSk7CisKKyAgICAgICAgcHJvbWlzZS5zZXR0bGUoRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZShwcm90ZWN0ZWRUaGlzLmdldCgpLCByZXN1bHQucmV0dXJu
VmFsdWUoKSkpOworICAgIH0pOworfQorCit2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpnZXRT
aXplKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMVW5zaWduZWRMb25nTG9uZz4mJiBwcm9taXNl
KQoreworICAgIGNvbm5lY3Rpb24oKS5nZXRTaXplKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxl
SWRlbnRpZmllciwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0
YWJsZSB7CisgICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7CisgICAgfSk7
Cit9CisKK3ZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OnRydW5jYXRlKEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1bnNpZ25lZCBs
b25nIGxvbmcgc2l6ZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3sKKyAg
ICBjb25uZWN0aW9uKCkudHJ1bmNhdGUoaWRlbnRpZmllcigpLCBhY2Nlc3NIYW5kbGVJZGVudGlm
aWVyLCBzaXplLCBbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRh
YmxlIHsKKyAgICAgICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKKyAgICB9KTsK
K30KKwordm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Zmx1c2goRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIERPTVByb21pc2VEZWZl
cnJlZDx2b2lkPiYmIHByb21pc2UpCit7CisgICAgY29ubmVjdGlvbigpLmZsdXNoKGlkZW50aWZp
ZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2Up
XShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUo
cmVzdWx0KSk7CisgICAgfSk7Cit9CisKK3ZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNsb3Nl
KEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlm
aWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQoreworICAgIGNvbm5lY3Rpb24oKS5jbG9zZShpZGVudGlmaWVyKCksIGFj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCmluZGV4
IDI1MDA1YzIxMzM4YmU3ODZhOTlmMjBiOGZhYWRlM2MxMmE3YWRjZDUuLmFmY2VhMWY3MDEzNzkw
OGZlMWM3NDBlMWZmZWViMWRlNzgxNDQxNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5o
CkBAIC0yNiwxMCArMjYsMTMgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRmlsZVN5c3Rl
bUhhbmRsZS5oIgorI2luY2x1ZGUgIkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
ci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZpbGU7CitjbGFzcyBGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZTsKK3RlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25P
cjsKIAogY2xhc3MgRmlsZVN5c3RlbUZpbGVIYW5kbGUgZmluYWwgOiBwdWJsaWMgRmlsZVN5c3Rl
bUhhbmRsZSB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChGaWxlU3lzdGVtRmlsZUhhbmRs
ZSk7CkBAIC0zNyw2ICs0MCwxMiBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IFJlZjxGaWxlU3lzdGVtRmlsZUhhbmRsZT4gY3JlYXRlKFN0cmluZyYmLCBGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJik7CiAgICAg
dm9pZCBnZXRGaWxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZT4+JiYpOwog
CisgICAgdm9pZCBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJ
bnRlcmZhY2U8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+PiYmKTsKKyAgICB2b2lkIGdldFNp
emUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBET01Qcm9taXNlRGVmZXJy
ZWQ8SURMVW5zaWduZWRMb25nTG9uZz4mJik7CisgICAgdm9pZCB0cnVuY2F0ZShGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBET01Q
cm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CisgICAgdm9pZCBmbHVzaChGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKyAgICB2
b2lkIGNsb3NlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJik7CisKIHByaXZhdGU6CiAgICAg
RmlsZVN5c3RlbUZpbGVIYW5kbGUoU3RyaW5nJiYsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
LCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5k
bGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1GaWxlSGFuZGxlLmlkbAppbmRleCA5ZTZhYTg4NTZlZDk3YjZjYmE0NjM4NTA1YWZhYTFlNTVh
NmQ5NWY1Li5jMTM5MmY1NTE2NjgzNTc4YzRhNDgyZjFhNmQ5MDg4YTg0YzkxYWEwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZp
bGVIYW5kbGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5pZGwKQEAgLTIzLDExICsyMywxMyBAQAogICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKKy8vIGh0dHBzOi8vd2ljZy5naXRodWIu
aW8vZmlsZS1zeXN0ZW0tYWNjZXNzLyNhcGktZmlsZXN5c3RlbWhhbmRsZQorCiBbCiAgICAgRW5h
YmxlZEJ5U2V0dGluZz1GaWxlU3lzdGVtQWNjZXNzRW5hYmxlZCwKICAgICBFeHBvc2VkPShXaW5k
b3csV29ya2VyKSwKICAgICBTZWN1cmVDb250ZXh0CiBdIGludGVyZmFjZSBGaWxlU3lzdGVtRmls
ZUhhbmRsZSA6IEZpbGVTeXN0ZW1IYW5kbGUgewogICAgIFByb21pc2U8RmlsZT4gZ2V0RmlsZSgp
OwotICAgIC8vIEZJWE1FOiBhZGQgUHJvbWlzZTxGaWxlU3lzdGVtV3JpdGFibGVGaWxlU3RyZWFt
PiBjcmVhdGVXcml0YWJsZShvcHRpb25hbCBGaWxlU3lzdGVtQ3JlYXRlV3JpdGFibGVPcHRpb25z
IG9wdGlvbnMpOworICAgIFtFeHBvc2VkPVdvcmtlcl0gUHJvbWlzZTxGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZT4gY3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpOwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCBlNjA1YTY3ZDkyYWI0MzZmZDY0ODNlMzc4
YjZmNjM4YjRkODFhYTBkLi40YzBmM2IwMGZhMmRjZjg2Njg1M2FlYjYxNDBlYzY0YTM3MzVkYTc4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCkBAIC0yNiw2ICsy
Niw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLmgi
CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVh
ZFNhZmVSZWZDb3VudGVkLmg+CiAKQEAgLTM4LDE1ICszOSwyNCBAQCB0ZW1wbGF0ZTx0eXBlbmFt
ZT4gY2xhc3MgRXhjZXB0aW9uT3I7CiBjbGFzcyBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24g
OiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
PiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKCkg
eyB9CisKICAgICB1c2luZyBTYW1lRW50cnlDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoRXhjZXB0aW9uT3I8Ym9vbD4mJik+OwogICAgIHVzaW5nIEdldEhhbmRsZUNhbGxiYWNrID0g
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
Zmllcj4mJik+OwotICAgIHVzaW5nIFJlbW92ZUVudHJ5Q2FsbGJhY2sgPSBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPjsKICAgICB1c2luZyBSZXNvbHZlQ2FsbGJh
Y2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPFZlY3RvcjxTdHJpbmc+PiYm
KT47CisgICAgdXNpbmcgR2V0QWNjZXNzSGFuZGxlQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKEV4Y2VwdGlvbk9yPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcj4m
Jik+OworICAgIHVzaW5nIFZvaWRDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhj
ZXB0aW9uT3I8dm9pZD4mJik+OworICAgIHVzaW5nIEludGVnZXJDYWxsYmFjayA9IENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dWludDY0X3Q+JiYpPjsKKwogICAgIHZpcnR1YWwg
dm9pZCBpc1NhbWVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIsIFNhbWVFbnRyeUNhbGxiYWNrJiYpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgZ2V0RmlsZUhhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBHZXRIYW5kbGVDYWxsYmFjayYmKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIGdldERpcmVjdG9yeUhhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBHZXRI
YW5kbGVDYWxsYmFjayYmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92ZUVudHJ5KEZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVj
dXJzaXZlbHksIFJlbW92ZUVudHJ5Q2FsbGJhY2smJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBy
ZW1vdmVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1l
LCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBWb2lkQ2FsbGJhY2smJikgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCByZXNvbHZlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciwgUmVzb2x2ZUNhbGxiYWNrJiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgR2V0QWNj
ZXNzSGFuZGxlQ2FsbGJhY2smJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRTaXplKEZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIsIEludGVnZXJDYWxsYmFjayYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHRydW5jYXRlKEZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50
aWZpZXIsIHVpbnQ2NF90IHNpemUsIFZvaWRDYWxsYmFjayYmKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGZsdXNoKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIsIFZvaWRDYWxsYmFjayYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGNsb3NlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZUlkZW50aWZpZXIsIFZvaWRDYWxsYmFjayYmKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zODkxZTQ5N2I4MGViNWFiYzhlMGVlMjUwOGFmNTEzZTA0NzVmNzVkCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcApAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
LmgiCisKKyNpbmNsdWRlICJCdWZmZXJTb3VyY2UuaCIKKyNpbmNsdWRlICJGaWxlU3lzdGVtRmls
ZUhhbmRsZS5oIgorI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworUmVmPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPiBGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZTo6Y3JlYXRlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiBzb3VyY2UsIEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKHNvdXJjZSwgaWRl
bnRpZmllcikpOworfQorCitGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6RmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUmIHNvdXJjZSwgRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAgOiBtX3NvdXJjZShzb3Vy
Y2UpCisgICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKK3sKK30KKworRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGU6On5GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSgpCit7CisgICAgaWYg
KCFtX2lzQ2xvc2VkKQorICAgICAgICBtX3NvdXJjZS0+Y2xvc2UobV9pZGVudGlmaWVyLCBbXShh
dXRvKSB7IH0pOworfQorCit2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjp0cnVuY2F0
ZSh1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJv
bWlzZSkKK3sKKyAgICBtX3NvdXJjZS0+dHJ1bmNhdGUobV9pZGVudGlmaWVyLCBzaXplLCBXVEZN
b3ZlKHByb21pc2UpKTsKK30KKwordm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Z2V0
U2l6ZShET01Qcm9taXNlRGVmZXJyZWQ8SURMVW5zaWduZWRMb25nTG9uZz4mJiBwcm9taXNlKQor
eworICAgIG1fc291cmNlLT5nZXRTaXplKG1faWRlbnRpZmllciwgV1RGTW92ZShwcm9taXNlKSk7
Cit9CisKK3ZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmZsdXNoKERPTVByb21pc2VE
ZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCit7CisgICAgbV9zb3VyY2UtPmZsdXNoKG1faWRlbnRp
ZmllciwgV1RGTW92ZShwcm9taXNlKSk7Cit9CisKK3ZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU6OmNsb3NlKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCit7CisgICAg
aWYgKG1faXNDbG9zZWQpCisgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24g
eyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKworICAgIG1fc291cmNlLT5jbG9zZShtX2lkZW50aWZp
ZXIsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJv
bWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHdlYWtUaGlzKQorICAg
ICAgICAgICAgd2Vha1RoaXMtPmRpZENsb3NlKCk7CisKKyAgICAgICAgcHJvbWlzZS5zZXR0bGUo
V1RGTW92ZShyZXN1bHQpKTsKKyAgICB9KTsKK30KKwordm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZTo6ZGlkQ2xvc2UoKQoreworICAgIG1faXNDbG9zZWQgPSB0cnVlOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjI5ZTQxNTdiNjU0MWI5M2U2ZWE1ZmUwMjM3ZjBjZjIxNWQwM2MzYmYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIuaCIKKyNpbmNsdWRlICJJRExUeXBlcy5oIgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRy
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRmlsZVN5c3RlbUZpbGVIYW5kbGU7
Cit0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgRE9NUHJvbWlzZURlZmVycmVkOworCitjbGFzcyBG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSA6IHB1YmxpYyBSZWZDb3VudGVkPEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlPiB7CitwdWJsaWM6CisgICAgc3RydWN0IEZpbGVzeXN0ZW1SZWFkV3JpdGVPcHRp
b25zIHsKKyAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIGF0OworICAgIH07CisKKyAgICBzdGF0
aWMgUmVmPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPiBjcmVhdGUoRmlsZVN5c3RlbUZpbGVI
YW5kbGUmLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpOworICAgIH5GaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZSgpOworCisgICAgdm9pZCB0cnVuY2F0ZSh1bnNpZ25lZCBs
b25nIGxvbmcgc2l6ZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOworICAgIHZvaWQgZ2V0
U2l6ZShET01Qcm9taXNlRGVmZXJyZWQ8SURMVW5zaWduZWRMb25nTG9uZz4mJik7CisgICAgdm9p
ZCBmbHVzaChET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CisgICAgdm9pZCBjbG9zZShET01Q
cm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CisgICAgdm9pZCBkaWRDbG9zZSgpOworCitwcml2YXRl
OgorICAgIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiwg
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyKTsKKworICAgIFJlZjxGaWxlU3lz
dGVtRmlsZUhhbmRsZT4gbV9zb3VyY2U7CisgICAgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICBib29sIG1faXNDbG9zZWQgeyBmYWxzZSB9Owor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTEyMDY0YTZkZjYxMWM0MTIxZTI1YzcxMDJmMDMz
MDNjZTQ0OTRhYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5pZGwKQEAgLTAsMCArMSw0
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQnlTZXR0aW5nPUFjY2Vzc0hhbmRsZUVu
YWJsZWQsCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKKyAgICBFeHBvc2VkPURlZGlj
YXRlZFdvcmtlciwKKyAgICBTZWN1cmVDb250ZXh0CitdIGludGVyZmFjZSBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZSB7CisgICAgUHJvbWlzZTx1bmRlZmluZWQ+IHRydW5jYXRlKFtFbmZvcmNl
UmFuZ2VdIHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplKTsKKyAgICBQcm9taXNlPHVuc2lnbmVkIGxv
bmcgbG9uZz4gZ2V0U2l6ZSgpOworICAgIFByb21pc2U8dW5kZWZpbmVkPiBmbHVzaCgpOworICAg
IFByb21pc2U8dW5kZWZpbmVkPiBjbG9zZSgpOworfTsKKworZGljdGlvbmFyeSBGaWxlc3lzdGVt
UmVhZFdyaXRlT3B0aW9ucyB7CisgICAgW0VuZm9yY2VSYW5nZV0gdW5zaWduZWQgbG9uZyBsb25n
IGF0OworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMTM1MWJmMmQ5NGU1ZjNhN2U2MWM2OTljYWI4MjdhMTc4
YjYxNzVkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oCkBAIC0wLDAg
KzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9PYmpl
Y3RJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8RmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyVHlwZT47CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtl
ckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcApp
bmRleCA0NWViM2VjOTViNzY1MWU3YzE1ZTMwYTY5OWM0NzRiNjU1MmQ0M2NkLi5mYTdmNjY5MzU3
MTYwYjc5MWRjMjVhMWEzMjA4M2RhMjY5ODU2NmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29y
a2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcApAQCAtNjQsNyArNjQsNyBAQCB2b2lk
IFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6c2NvcGVDbG9zZWQoKQogICAgIGZv
ciAoYXV0byYgY2FsbGJhY2sgOiBnZXRIYW5kbGVDYWxsYmFja3MudmFsdWVzKCkpCiAgICAgICAg
IGNhbGxiYWNrKEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOwogCi0gICAgYXV0byBy
ZW1vdmVFbnRyeUNhbGxiYWNrcyA9IHN0ZDo6ZXhjaGFuZ2UobV9yZW1vdmVFbnRyeUNhbGxiYWNr
cywgeyB9KTsKKyAgICBhdXRvIHJlbW92ZUVudHJ5Q2FsbGJhY2tzID0gc3RkOjpleGNoYW5nZSht
X3ZvaWRDYWxsYmFja3MsIHsgfSk7CiAgICAgZm9yIChhdXRvJiBjYWxsYmFjayA6IHJlbW92ZUVu
dHJ5Q2FsbGJhY2tzLnZhbHVlcygpKQogICAgICAgICBjYWxsYmFjayhFeGNlcHRpb24geyBJbnZh
bGlkU3RhdGVFcnJvciB9KTsKIApAQCAtMTQ3LDE5ICsxNDcsMTkgQEAgdm9pZCBXb3JrZXJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmRpZEdldEhhbmRsZShDYWxsYmFja0lkZW50aWZpZXIg
Y2FsbGJhY2sKICAgICAgICAgY2FsbGJhY2soV1RGTW92ZShyZXN1bHQpKTsKIH0KIAotdm9pZCBX
b3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnJlbW92ZUVudHJ5KEZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxl
dGVSZWN1cnNpdmVseSwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpSZW1vdmVFbnRyeUNh
bGxiYWNrJiYgY2FsbGJhY2spCit2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bjo6cmVtb3ZlRW50cnkoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmIGNhbGxiYWNrKQogewogICAgIGlmICghbV9zY29w
ZSkKICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9y
IH0pOwogCiAgICAgYXV0byBjYWxsYmFja0lkZW50aWZpZXIgPSBDYWxsYmFja0lkZW50aWZpZXI6
OmdlbmVyYXRlVGhyZWFkU2FmZSgpOwotICAgIG1fcmVtb3ZlRW50cnlDYWxsYmFja3MuYWRkKGNh
bGxiYWNrSWRlbnRpZmllciwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIG1fdm9pZENhbGxiYWNr
cy5hZGQoY2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiAKICAgICBjYWxs
T25NYWluVGhyZWFkKFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFJlZiB7IG1f
c2NvcGUtPnRocmVhZCgpIH0sIG1haW5UaHJlYWRDb25uZWN0aW9uID0gbV9tYWluVGhyZWFkQ29u
bmVjdGlvbiwgaWRlbnRpZmllciwgbmFtZSA9IG5hbWUuaXNvbGF0ZWRDb3B5KCksIGRlbGV0ZVJl
Y3Vyc2l2ZWx5XSgpIG11dGFibGUgewogICAgICAgICBhdXRvIG1haW5UaHJlYWRDYWxsYmFjayA9
IFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFdURk1vdmUod29ya2VyVGhyZWFk
KV0oYXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAgICAgICAgd29ya2VyVGhyZWFkLT5ydW5M
b29wKCkucG9zdFRhc2tGb3JNb2RlKFtjYWxsYmFja0lkZW50aWZpZXIsIHJlc3VsdCA9IGNyb3Nz
VGhyZWFkQ29weShyZXN1bHQpXSAoYXV0byYgc2NvcGUpIG11dGFibGUgewogICAgICAgICAgICAg
ICAgIGlmIChhdXRvIGNvbm5lY3Rpb24gPSBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oc2Nv
cGUpLmZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbigpKQotICAgICAgICAgICAgICAgICAgICBj
b25uZWN0aW9uLT5kaWRSZW1vdmVFbnRyeShjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUocmVz
dWx0KSk7CisgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPmNvbXBsZXRlVm9pZENhbGxi
YWNrKGNhbGxiYWNrSWRlbnRpZmllciwgV1RGTW92ZShyZXN1bHQpKTsKICAgICAgICAgICAgIH0s
IFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwogICAgICAgICB9OwogCkBAIC0xNjcsMTIg
KzE2Nyw2IEBAIHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpyZW1vdmVF
bnRyeShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpCiAgICAgfSk7CiB9CiAKLXZvaWQgV29y
a2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpkaWRSZW1vdmVFbnRyeShDYWxsYmFja0lk
ZW50aWZpZXIgY2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25Pcjx2b2lkPiYmIHJlc3VsdCkK
LXsKLSAgICBpZiAoYXV0byBjYWxsYmFjayA9IG1fcmVtb3ZlRW50cnlDYWxsYmFja3MudGFrZShj
YWxsYmFja0lkZW50aWZpZXIpKQotICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKHJlc3VsdCkpOwot
fQotCiB2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6cmVzb2x2ZShGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciBvdGhlcklkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6UmVzb2x2
ZUNhbGxiYWNrJiYgY2FsbGJhY2spCiB7CiAgICAgaWYgKCFtX3Njb3BlKQpAQCAtMTk5LDQgKzE5
MywxMjIgQEAgdm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmRpZFJlc29s
dmUoQ2FsbGJhY2tJZGVudGlmaWVyIGNhbGxiYWNrSWQKICAgICAgICAgY2FsbGJhY2soV1RGTW92
ZShyZXN1bHQpKTsKIH0KIAordm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246
OmRpZENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoQ2FsbGJhY2tJZGVudGlmaWVyIGNhbGxiYWNrSWRl
bnRpZmllciwgRXhjZXB0aW9uT3I8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVy
PiYmIHJlc3VsdCkKK3sKKyAgICBpZiAoYXV0byBjYWxsYmFjayA9IG1fZ2V0QWNjZXNzSGFuZGxD
YWxsYmFja3MudGFrZShjYWxsYmFja0lkZW50aWZpZXIpKQorICAgICAgICBjYWxsYmFjayhXVEZN
b3ZlKHJlc3VsdCkpOworfQorCit2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bjo6Y29tcGxldGVJbnRlZ2VyQ2FsbGJhY2soQ2FsbGJhY2tJZGVudGlmaWVyIGNhbGxiYWNrSWRl
bnRpZmllciwgRXhjZXB0aW9uT3I8dWludDY0X3Q+JiYgcmVzdWx0KQoreworICAgIGlmIChhdXRv
IGNhbGxiYWNrID0gbV9pbnRlZ2VyQ2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJZGVudGlmaWVyKSkK
KyAgICAgICAgY2FsbGJhY2soV1RGTW92ZShyZXN1bHQpKTsKK30KKwordm9pZCBXb3JrZXJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNvbXBsZXRlVm9pZENhbGxiYWNrKENhbGxiYWNrSWRl
bnRpZmllciBjYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPHZvaWQ+JiYgcmVzdWx0KQor
eworICAgIGlmIChhdXRvIGNhbGxiYWNrID0gbV92b2lkQ2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJ
ZGVudGlmaWVyKSkKKyAgICAgICAgY2FsbGJhY2soV1RGTW92ZShyZXN1bHQpKTsKK30KKwordm9p
ZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0ZVN5bmNBY2Nlc3NIYW5k
bGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOjpHZXRBY2Nlc3NIYW5kbGVDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAg
IGlmICghbV9zY29wZSkKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IEludmFs
aWRTdGF0ZUVycm9yIH0pOworCisgICAgYXV0byBjYWxsYmFja0lkZW50aWZpZXIgPSBDYWxsYmFj
a0lkZW50aWZpZXI6OmdlbmVyYXRlVGhyZWFkU2FmZSgpOworICAgIG1fZ2V0QWNjZXNzSGFuZGxD
YWxsYmFja3MuYWRkKGNhbGxiYWNrSWRlbnRpZmllciwgV1RGTW92ZShjYWxsYmFjaykpOworCisg
ICAgY2FsbE9uTWFpblRocmVhZChbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQgPSBS
ZWYgeyBtX3Njb3BlLT50aHJlYWQoKSB9LCBtYWluVGhyZWFkQ29ubmVjdGlvbiA9IG1fbWFpblRo
cmVhZENvbm5lY3Rpb24sIGlkZW50aWZpZXJdKCkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8gbWFp
blRocmVhZENhbGxiYWNrID0gW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gV1RG
TW92ZSh3b3JrZXJUaHJlYWQpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgICAgICB3
b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoW2NhbGxiYWNrSWRlbnRpZmll
ciwgcmVzdWx0ID0gY3Jvc3NUaHJlYWRDb3B5KHJlc3VsdCldIChhdXRvJiBzY29wZSkgbXV0YWJs
ZSB7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gY29ubmVjdGlvbiA9IGRvd25jYXN0PFdvcmtl
ckdsb2JhbFNjb3BlPihzY29wZSkuZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKCkpCisgICAg
ICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPmRpZENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoY2Fs
bGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAgICAgfSwgV29ya2Vy
UnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CisgICAgICAgIH07CisKKyAgICAgICAgbWFpblRocmVh
ZENvbm5lY3Rpb24tPmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoaWRlbnRpZmllciwgV1RGTW92ZSht
YWluVGhyZWFkQ2FsbGJhY2spKTsKKyAgICB9KTsKK30KKwordm9pZCBXb3JrZXJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb246OmdldFNpemUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRl
bnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRs
ZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6SW50ZWdlckNhbGxiYWNr
JiYgY2FsbGJhY2spCit7CisgICAgaWYgKCFtX3Njb3BlKQorICAgICAgICByZXR1cm4gY2FsbGJh
Y2soRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CisKKyAgICBhdXRvIGNhbGxiYWNr
SWRlbnRpZmllciA9IENhbGxiYWNrSWRlbnRpZmllcjo6Z2VuZXJhdGVUaHJlYWRTYWZlKCk7Cisg
ICAgbV9pbnRlZ2VyQ2FsbGJhY2tzLmFkZChjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUoY2Fs
bGJhY2spKTsKKworICAgIGNhbGxPbk1haW5UaHJlYWQoW2NhbGxiYWNrSWRlbnRpZmllciwgd29y
a2VyVGhyZWFkID0gUmVmIHsgbV9zY29wZS0+dGhyZWFkKCkgfSwgbWFpblRocmVhZENvbm5lY3Rp
b24gPSBtX21haW5UaHJlYWRDb25uZWN0aW9uLCBpZGVudGlmaWVyLCBhY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyXSgpIG11dGFibGUgeworICAgICAgICBhdXRvIG1haW5UaHJlYWRDYWxsYmFjayA9IFtj
YWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKV0o
YXV0byByZXN1bHQpIG11dGFibGUgeworICAgICAgICAgICAgd29ya2VyVGhyZWFkLT5ydW5Mb29w
KCkucG9zdFRhc2tGb3JNb2RlKFtjYWxsYmFja0lkZW50aWZpZXIsIHJlc3VsdCA9IGNyb3NzVGhy
ZWFkQ29weShyZXN1bHQpXSAoYXV0byYgc2NvcGUpIG11dGFibGUgeworICAgICAgICAgICAgICAg
IGlmIChhdXRvIGNvbm5lY3Rpb24gPSBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oc2NvcGUp
LmZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbigpKQorICAgICAgICAgICAgICAgICAgICBjb25u
ZWN0aW9uLT5jb21wbGV0ZUludGVnZXJDYWxsYmFjayhjYWxsYmFja0lkZW50aWZpZXIsIFdURk1v
dmUocmVzdWx0KSk7CisgICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgp
KTsKKyAgICAgICAgfTsKKworICAgICAgICBtYWluVGhyZWFkQ29ubmVjdGlvbi0+Z2V0U2l6ZShp
ZGVudGlmaWVyLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXVEZNb3ZlKG1haW5UaHJlYWRDYWxs
YmFjaykpOworICAgIH0pOworfQorCit2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbjo6dHJ1bmNhdGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIs
IHVpbnQ2NF90IHNpemUsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Vm9pZENhbGxiYWNr
JiYgY2FsbGJhY2spCit7CisgICAgaWYgKCFtX3Njb3BlKQorICAgICAgICByZXR1cm4gY2FsbGJh
Y2soRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CisKKyAgICBhdXRvIGNhbGxiYWNr
SWRlbnRpZmllciA9IENhbGxiYWNrSWRlbnRpZmllcjo6Z2VuZXJhdGVUaHJlYWRTYWZlKCk7Cisg
ICAgbV92b2lkQ2FsbGJhY2tzLmFkZChjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUoY2FsbGJh
Y2spKTsKKworICAgIGNhbGxPbk1haW5UaHJlYWQoW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2Vy
VGhyZWFkID0gUmVmIHsgbV9zY29wZS0+dGhyZWFkKCkgfSwgbWFpblRocmVhZENvbm5lY3Rpb24g
PSBtX21haW5UaHJlYWRDb25uZWN0aW9uLCBpZGVudGlmaWVyLCBhY2Nlc3NIYW5kbGVJZGVudGlm
aWVyLCBzaXplXSgpIG11dGFibGUgeworICAgICAgICBhdXRvIG1haW5UaHJlYWRDYWxsYmFjayA9
IFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFdURk1vdmUod29ya2VyVGhyZWFk
KV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgICAgICAgICAgd29ya2VyVGhyZWFkLT5ydW5M
b29wKCkucG9zdFRhc2tGb3JNb2RlKFtjYWxsYmFja0lkZW50aWZpZXIsIHJlc3VsdCA9IGNyb3Nz
VGhyZWFkQ29weShyZXN1bHQpXSAoYXV0byYgc2NvcGUpIG11dGFibGUgeworICAgICAgICAgICAg
ICAgIGlmIChhdXRvIGNvbm5lY3Rpb24gPSBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oc2Nv
cGUpLmZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbigpKQorICAgICAgICAgICAgICAgICAgICBj
b25uZWN0aW9uLT5jb21wbGV0ZVZvaWRDYWxsYmFjayhjYWxsYmFja0lkZW50aWZpZXIsIFdURk1v
dmUocmVzdWx0KSk7CisgICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgp
KTsKKyAgICAgICAgfTsKKworICAgICAgICBtYWluVGhyZWFkQ29ubmVjdGlvbi0+dHJ1bmNhdGUo
aWRlbnRpZmllciwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgc2l6ZSwgV1RGTW92ZShtYWluVGhy
ZWFkQ2FsbGJhY2spKTsKKyAgICB9KTsKK30KKwordm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb246OmZsdXNoKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIs
IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlm
aWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmIGNhbGxiYWNr
KQoreworICAgIGlmICghbV9zY29wZSkKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKEV4Y2VwdGlv
biB7IEludmFsaWRTdGF0ZUVycm9yIH0pOworCisgICAgYXV0byBjYWxsYmFja0lkZW50aWZpZXIg
PSBDYWxsYmFja0lkZW50aWZpZXI6OmdlbmVyYXRlVGhyZWFkU2FmZSgpOworICAgIG1fdm9pZENh
bGxiYWNrcy5hZGQoY2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisKKyAg
ICBjYWxsT25NYWluVGhyZWFkKFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFJl
ZiB7IG1fc2NvcGUtPnRocmVhZCgpIH0sIG1haW5UaHJlYWRDb25uZWN0aW9uID0gbV9tYWluVGhy
ZWFkQ29ubmVjdGlvbiwgaWRlbnRpZmllciwgYWNjZXNzSGFuZGxlSWRlbnRpZmllcl0oKSBtdXRh
YmxlIHsKKyAgICAgICAgYXV0byBtYWluVGhyZWFkQ2FsbGJhY2sgPSBbY2FsbGJhY2tJZGVudGlm
aWVyLCB3b3JrZXJUaHJlYWQgPSBXVEZNb3ZlKHdvcmtlclRocmVhZCldKGF1dG8gcmVzdWx0KSBt
dXRhYmxlIHsKKyAgICAgICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9y
TW9kZShbY2FsbGJhY2tJZGVudGlmaWVyLCByZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0
KV0gKGF1dG8mIHNjb3BlKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBjb25u
ZWN0aW9uID0gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5maWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24oKSkKKyAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+Y29tcGxl
dGVWb2lkQ2FsbGJhY2soY2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3VsdCkpOworICAg
ICAgICAgICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CisgICAgICAgIH07CisK
KyAgICAgICAgbWFpblRocmVhZENvbm5lY3Rpb24tPmZsdXNoKGlkZW50aWZpZXIsIGFjY2Vzc0hh
bmRsZUlkZW50aWZpZXIsIFdURk1vdmUobWFpblRocmVhZENhbGxiYWNrKSk7CisgICAgfSk7Cit9
CisKK3ZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjbG9zZShGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpWb2lkQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBpZiAoIW1fc2NvcGUpCisg
ICAgICAgIHJldHVybiBjYWxsYmFjayhFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsK
KworICAgIGF1dG8gY2FsbGJhY2tJZGVudGlmaWVyID0gQ2FsbGJhY2tJZGVudGlmaWVyOjpnZW5l
cmF0ZVRocmVhZFNhZmUoKTsKKyAgICBtX3ZvaWRDYWxsYmFja3MuYWRkKGNhbGxiYWNrSWRlbnRp
ZmllciwgV1RGTW92ZShjYWxsYmFjaykpOworCisgICAgY2FsbE9uTWFpblRocmVhZChbY2FsbGJh
Y2tJZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQgPSBSZWYgeyBtX3Njb3BlLT50aHJlYWQoKSB9LCBt
YWluVGhyZWFkQ29ubmVjdGlvbiA9IG1fbWFpblRocmVhZENvbm5lY3Rpb24sIGlkZW50aWZpZXIs
IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXJdKCkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8gbWFpblRo
cmVhZENhbGxiYWNrID0gW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gV1RGTW92
ZSh3b3JrZXJUaHJlYWQpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgICAgICB3b3Jr
ZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoW2NhbGxiYWNrSWRlbnRpZmllciwg
cmVzdWx0ID0gY3Jvc3NUaHJlYWRDb3B5KHJlc3VsdCldIChhdXRvJiBzY29wZSkgbXV0YWJsZSB7
CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gY29ubmVjdGlvbiA9IGRvd25jYXN0PFdvcmtlckds
b2JhbFNjb3BlPihzY29wZSkuZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKCkpCisgICAgICAg
ICAgICAgICAgICAgIGNvbm5lY3Rpb24tPmNvbXBsZXRlVm9pZENhbGxiYWNrKGNhbGxiYWNrSWRl
bnRpZmllciwgV1RGTW92ZShyZXN1bHQpKTsKKyAgICAgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6
OmRlZmF1bHRNb2RlKCkpOworICAgICAgICB9OworCisgICAgICAgIG1haW5UaHJlYWRDb25uZWN0
aW9uLT5jbG9zZShpZGVudGlmaWVyLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXVEZNb3ZlKG1h
aW5UaHJlYWRDYWxsYmFjaykpOworICAgIH0pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29y
a2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKaW5k
ZXggZWM2OWQxNzVhMmY3NTlmMDZiM2YxYzU0NzQ0ZDcxMGM5ZTYxYzNhYy4uOTBjYmNiZjY3M2E1
ODZmMjc0NDJmOTY0MDM0N2E5MjUyNjUwY2ZjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaApAQCAtNDYsOCArNDYsMTAgQEAgcHVibGljOgog
ICAgIHVzaW5nIENhbGxiYWNrSWRlbnRpZmllciA9IFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbkNhbGxiYWNrSWRlbnRpZmllcjsKICAgICB2b2lkIGRpZElzU2FtZUVudHJ5KENhbGxi
YWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8Ym9vbD4mJik7CiAgICAgdm9pZCBkaWRHZXRIYW5k
bGUoQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
Zmllcj4mJik7Ci0gICAgdm9pZCBkaWRSZW1vdmVFbnRyeShDYWxsYmFja0lkZW50aWZpZXIsIEV4
Y2VwdGlvbk9yPHZvaWQ+JiYpOwogICAgIHZvaWQgZGlkUmVzb2x2ZShDYWxsYmFja0lkZW50aWZp
ZXIsIEV4Y2VwdGlvbk9yPFZlY3RvcjxTdHJpbmc+PiYmKTsKKyAgICB2b2lkIGRpZENyZWF0ZVN5
bmNBY2Nlc3NIYW5kbGUoQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXI+JiYgcmVzdWx0KTsKKyAgICB2b2lkIGNvbXBsZXRl
Vm9pZENhbGxiYWNrKENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8dm9pZD4mJiByZXN1
bHQpOworICAgIHZvaWQgY29tcGxldGVJbnRlZ2VyQ2FsbGJhY2soQ2FsbGJhY2tJZGVudGlmaWVy
LCBFeGNlcHRpb25Pcjx1aW50NjRfdD4mJiByZXN1bHQpOwogCiBwcml2YXRlOgogICAgIFdvcmtl
ckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbihXb3JrZXJHbG9iYWxTY29wZSYsIFJlZjxGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYpOwpAQCAtNTYsMTUgKzU4LDIzIEBAIHByaXZhdGU6
CiAgICAgdm9pZCBpc1NhbWVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6U2FtZUVu
dHJ5Q2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9pZCBnZXRGaWxlSGFuZGxlKEZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3Nh
cnksIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0SGFuZGxlQ2FsbGJhY2smJikgZmlu
YWw7CiAgICAgdm9pZCBnZXREaXJlY3RvcnlIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRIYW5kbGVDYWxsYmFjayYmKSBmaW5hbDsKLSAgICB2b2lk
IHJlbW92ZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5h
bWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHksIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6
UmVtb3ZlRW50cnlDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIHJlbW92ZUVudHJ5KEZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVj
dXJzaXZlbHksIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Vm9pZENhbGxiYWNrJiYpIGZp
bmFsOwogICAgIHZvaWQgcmVzb2x2ZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6UmVzb2x2
ZUNhbGxiYWNrJiYpIGZpbmFsOwogCisgICAgdm9pZCBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKEZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246Okdl
dEFjY2Vzc0hhbmRsZUNhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgZ2V0U2l6ZShGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVy
LCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkludGVnZXJDYWxsYmFjayYmKSBmaW5hbDsK
KyAgICB2b2lkIHRydW5jYXRlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHVpbnQ2NF90IHNpemUsIEZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbjo6Vm9pZENhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgZmx1c2goRmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRp
ZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJikgZmluYWw7
CisgICAgdm9pZCBjbG9zZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZv
aWRDYWxsYmFjayYmKSBmaW5hbDsKKwogICAgIFdlYWtQdHI8V29ya2VyR2xvYmFsU2NvcGU+IG1f
c2NvcGU7CiAgICAgUmVmUHRyPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4gbV9tYWluVGhy
ZWFkQ29ubmVjdGlvbjsKICAgICBIYXNoTWFwPENhbGxiYWNrSWRlbnRpZmllciwgRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uOjpTYW1lRW50cnlDYWxsYmFjaz4gbV9zYW1lRW50cnlDYWxsYmFj
a3M7CiAgICAgSGFzaE1hcDxDYWxsYmFja0lkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbjo6R2V0SGFuZGxlQ2FsbGJhY2s+IG1fZ2V0SGFuZGxlQ2FsbGJhY2tzOwotICAgIEhh
c2hNYXA8Q2FsbGJhY2tJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlJl
bW92ZUVudHJ5Q2FsbGJhY2s+IG1fcmVtb3ZlRW50cnlDYWxsYmFja3M7CiAgICAgSGFzaE1hcDxD
YWxsYmFja0lkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6UmVzb2x2ZUNh
bGxiYWNrPiBtX3Jlc29sdmVDYWxsYmFja3M7CisgICAgSGFzaE1hcDxDYWxsYmFja0lkZW50aWZp
ZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0QWNjZXNzSGFuZGxlQ2FsbGJhY2s+
IG1fZ2V0QWNjZXNzSGFuZGxDYWxsYmFja3M7CisgICAgSGFzaE1hcDxDYWxsYmFja0lkZW50aWZp
ZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Vm9pZENhbGxiYWNrPiBtX3ZvaWRDYWxs
YmFja3M7CisgICAgSGFzaE1hcDxDYWxsYmFja0lkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbjo6SW50ZWdlckNhbGxiYWNrPiBtX2ludGVnZXJDYWxsYmFja3M7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDFlZmY2YWViMzliYTAyYTcz
NWYyMTRjMzRmZDcwYzEwMzNlOTNmMTAuLjkzOTc4MWQwMzE0OWE3OWMwZWU0N2RmYjJlMDliODBl
OTJlZmUwODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC02MSw2ICs2MSw3IEBAIE1vZHVsZXMvZmV0Y2gv
V2luZG93T3JXb3JrZXJHbG9iYWxTY29wZUZldGNoLmNwcAogTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuY3BwCiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbUhhbmRsZS5jcHAKK01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZS5jcHAKIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb05vdGlmaWVy
LmNwcAogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAKQEAgLTMwNDYsNiArMzA0
Nyw3IEBAIEpTRmlsZVN5c3RlbUVudHJ5Q2FsbGJhY2suY3BwCiBKU0ZpbGVTeXN0ZW1GaWxlRW50
cnkuY3BwCiBKU0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcAogSlNGaWxlU3lzdGVtSGFuZGxlLmNw
cAorSlNGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAKIEpTRmlsbE1vZGUuY3BwCiBKU0Zv
Y3VzRXZlbnQuY3BwCiBKU0ZvY3VzT3B0aW9ucy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2MTRjM2Q3MGMyY2IxM2RmYzFj
MjBjYjI2MDg1MjY3MGY0ZWQ3ZTVhLi41MjViYmFiMWUwMDgxZWMwMzJlMmFiZDIyNWIyYjVjYTIx
ZWZkOWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0yODEwLDYgKzI4MTAsNyBAQAogCQk5MzBBQUM5QTI1MEVCODQ5MDAxM0RB
OUYgLyogQ1NTQ29uZGl0aW9uUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTMwQUFDOTgyNTBFQjgxNzAwMTNEQTlGIC8qIENTU0NvbmRpdGlvblJ1
bGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5
MzBBQUM5RjI1MEVENDA5MDAxM0RBOUYgLyogSlNDU1NDb25kaXRpb25SdWxlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzBBQUM5RDI1MEVENDA5MDAx
M0RBOUYgLyogSlNDU1NDb25kaXRpb25SdWxlLmggKi87IH07CiAJCTkzMEFBQ0EyMjUwRUQ0MTEw
MDEzREE5RiAvKiBKU0NTU0dyb3VwaW5nUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwQUFDQTAyNTBFRDQxMTAwMTNEQTlGIC8qIEpTQ1NTR3Jv
dXBpbmdSdWxlLmggKi87IH07CisJCTkzMEU0NDg2MjcwQzM3MjIwMERFN0FCNyAvKiBGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMEU0NDg0MjcwQzM3MjEwMERFN0FCNyAvKiBGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzE1M0JEQTE0MTgxRjdBMDBGQ0Y1QkUgLyogbWlz
c2luZ0ltYWdlQDJ4LnBuZyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTMxNTNCRDkxNDE4MUY3QTAwRkNGNUJFIC8qIG1pc3NpbmdJbWFnZUAyeC5wbmcg
Ki87IH07CiAJCTkzMTUzQkRDMTQxOTU5QkMwMEZDRjVCRSAvKiB0ZXh0QXJlYVJlc2l6ZUNvcm5l
ci5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
MTUzQkRCMTQxOTU5QkIwMEZDRjVCRSAvKiB0ZXh0QXJlYVJlc2l6ZUNvcm5lci5wbmcgKi87IH07
CiAJCTkzMTUzQkUyMTQxOTVBNTcwMEZDRjVCRSAvKiBtaXNzaW5nSW1hZ2UucG5nIGluIFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzE1M0JFMTE0MTk1QTU3
MDBGQ0Y1QkUgLyogbWlzc2luZ0ltYWdlLnBuZyAqLzsgfTsKQEAgLTI5NjMsNiArMjk2NCw3IEBA
CiAJCTkzRDZCN0E4MjU1MUQ0MUYwMDU4REQzQSAvKiBEdW1teVNwZWVjaFJlY29nbml0aW9uUHJv
dmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
RDZCN0E2MjU1MUQzRUQwMDU4REQzQSAvKiBEdW1teVNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0Q5
RDUzQzBEQTI3RTE4MDA3NzIxNkMgLyogUmFuZ2VCb3VuZGFyeVBvaW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Q5RDUzQjBEQTI3RTE4MDA3NzIx
NkMgLyogUmFuZ2VCb3VuZGFyeVBvaW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNFMjQxRkYwQjJCNEU0MDAwQzczMkExIC8qIEhUTUxGcmFt
ZU93bmVyRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTNFMjQxRkUwQjJCNEU0MDAwQzczMkExIC8qIEhUTUxGcmFtZU93bmVyRWxlbWVudC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzRTI2
OUEyMjcwQTVENUQwMDJDNEZGMCAvKiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNFMjY5OUYyNzBBNUQ1
QzAwMkM0RkYwIC8qIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNFMkEzMDcxMjNFOURDMDAwOUZF
MTJBIC8qIEhUTUxQYXJzZXJJZGlvbXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzRTJBMzA1MTIzRTlEQzAwMDlGRTEyQSAvKiBIVE1MUGFyc2VySWRp
b21zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
OTNFNUIyNjUyNDU1RTk2RjAwNUM1MkQwIC8qIEF0dHJpYnV0ZWRTdHJpbmcuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTVCMjYzMjQ1NUU5NkYwMDVD
NTJEMCAvKiBBdHRyaWJ1dGVkU3RyaW5nLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNGMTk4RTUwODI0NUU1OTAwMUU5QUJDIC8qIEhUTUxEb2N1
bWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUy
M0QyM0MwMkRFNDM5NjAxODYzNUNBIC8qIEhUTUxEb2N1bWVudC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMTY5NSw2ICsxMTY5Nyw3IEBACiAJ
CTkzMEFBQ0EwMjUwRUQ0MTEwMDEzREE5RiAvKiBKU0NTU0dyb3VwaW5nUnVsZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NTU0dyb3VwaW5nUnVsZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5MzBBQUNBMTI1MEVENDExMDAxM0RBOUYgLyogSlNDU1NHcm91
cGluZ1J1bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDU1NH
cm91cGluZ1J1bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzBDOTBEQzE5
Q0Y5NjUzMDBENkMyMUEgLyogTGVnYWN5SW5saW5lSXRlcmF0b3IuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGVnYWN5SW5saW5lSXRlcmF0b3IuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5MzBFNDQ4NDI3MEMzNzIxMDBERTdBQjcgLyogRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5MzE1M0JEOTE0MTgxRjdBMDBGQ0Y1QkUgLyogbWlzc2lu
Z0ltYWdlQDJ4LnBuZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IGltYWdlLnBuZzsgcGF0aCA9ICJtaXNzaW5nSW1hZ2VAMngucG5nIjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMxNTNCREIxNDE5NTlCQjAwRkNGNUJFIC8qIHRleHRBcmVh
UmVzaXplQ29ybmVyLnBuZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IGltYWdlLnBuZzsgcGF0aCA9IHRleHRBcmVhUmVzaXplQ29ybmVyLnBuZzsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMxNTNCRTExNDE5NUE1NzAwRkNGNUJFIC8qIG1p
c3NpbmdJbWFnZS5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSBtaXNzaW5nSW1hZ2UucG5nOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTE5OTQsNiArMTE5OTcsOSBAQAogCQk5M0UyMjdERjBBRjU4OUFE
MDBENDgzMjQgLyogU3VicmVzb3VyY2VMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU3VicmVzb3VyY2VMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5M0UyNDFGRTBCMkI0RTQwMDBDNzMyQTEgLyogSFRNTEZyYW1lT3duZXJFbGVt
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxGcmFtZU93bmVyRWxl
bWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0UyNDI1RTBCMkI1MDk1MDBD
NzMyQTEgLyogSFRNTEZyYW1lT3duZXJFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEhUTUxGcmFtZU93bmVyRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTkzRTI2OTlEMjcwQTVENUIwMDJDNEZGMCAvKiBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0UyNjk5RjI3
MEE1RDVDMDAyQzRGRjAgLyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNFMjY5QTAyNzBBNUQ1QzAwMkM0RkYwIC8qIEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTNFMkEzMDQxMjNFOURDMDAwOUZFMTJBIC8qIEhUTUxQYXJzZXJJZGlv
bXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTFBhcnNlcklk
aW9tcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRTJBMzA1MTIzRTlEQzAw
MDlGRTEyQSAvKiBIVE1MUGFyc2VySWRpb21zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEhUTUxQYXJzZXJJZGlvbXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTNFNUIyNTQyNDUzNkIxRTAwNUM1MkQwIC8qIFVSTERlY29tcG9zaXRpb24uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVVJMRGVjb21wb3NpdGlvbi5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMzQzOCw2ICsyMzQ0NCwxMCBAQAogCQkJCTkzMkM5
QkQ5MjZERDYyNjAwMDUzQjNEQiAvKiBGaWxlU3lzdGVtSGFuZGxlLmlkbCAqLywKIAkJCQk5MzU0
MjQyNzI3MDNCQzg4MDA1Q0E3MkMgLyogRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaCAqLywK
IAkJCQk5MzU0MjQyOTI3MDNCQ0FEMDA1Q0E3MkMgLyogRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uLmggKi8sCisJCQkJOTNFMjY5QTAyNzBBNUQ1QzAwMkM0RkYwIC8qIEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlLmNwcCAqLywKKwkJCQk5M0UyNjk5RjI3MEE1RDVDMDAyQzRGRjAgLyogRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaCAqLywKKwkJCQk5M0UyNjk5RDI3MEE1RDVCMDAyQzRG
RjAgLyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRsICovLAorCQkJCTkzMEU0NDg0Mjcw
QzM3MjEwMERFN0FCNyAvKiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIuaCAq
LywKIAkJCQk5MzQ0M0U3QjI2RThBNkJDMDA1ODUzOEYgLyogU3RvcmFnZU1hbmFnZXIrRmlsZVN5
c3RlbUFjY2Vzcy5pZGwgKi8sCiAJCQkJOTM0NDNFN0QyNkU4QTZCQzAwNTg1MzhGIC8qIFN0b3Jh
Z2VNYW5hZ2VyRmlsZVN5c3RlbUFjY2Vzcy5oICovLAogCQkJCTkzMjMzQzg1MjcwNTRDNzgwMEJC
RjQxRSAvKiBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwICovLApAQCAtMzI1
NjAsNiArMzI1NzAsOCBAQAogCQkJCTkzNDQzRTg4MjZFOTk1QzQwMDU4NTM4RiAvKiBGaWxlU3lz
dGVtSGFuZGxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzU0MjQyRjI3MDNDQTUxMDA1Q0E3MkMg
LyogRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNTQy
NDMwMjcwM0NCODYwMDVDQTcyQyAvKiBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBpbiBI
ZWFkZXJzICovLAorCQkJCTkzRTI2OUEyMjcwQTVENUQwMDJDNEZGMCAvKiBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTMwRTQ0ODYyNzBDMzcyMjAwREU3
QUI3IC8qIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkM1RUI2OUYwRTgxREFFQjAwQjI1OTY1IC8qIEZpbGxMYXllci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNzEyQkU0ODMxRkU4NjVERDAwMjAzMUNDIC8qIEZpbGxNb2RlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4NDVFNzJGODBGRDI2MUVFMDBBODdENzkgLyogRmlsdGVyLmggaW4gSGVh
ZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVC
dWlsdGluTmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGlu
TmFtZXMuaAppbmRleCBlODM1ZGY3ZmYwYjIyMGRlYmEwNThmZDNhODRkZjVkMmMyNTEzOTVjLi4y
YmI5YTkzOWJmY2I2YTk3NTg4NjJmNzg4NTY2ZTcyYzA0YTBlNzA0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCkBAIC0xMjQsNiArMTI0
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKEZpbGVTeXN0ZW1GaWxlRW50cnkp
IFwKICAgICBtYWNybyhGaWxlU3lzdGVtRmlsZUhhbmRsZSkgXAogICAgIG1hY3JvKEZpbGVTeXN0
ZW1IYW5kbGUpIFwKKyAgICBtYWNybyhGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSkgXAogICAg
IG1hY3JvKEdhbWVwYWQpIFwKICAgICBtYWNybyhHYW1lcGFkQnV0dG9uKSBcCiAgICAgbWFjcm8o
R2FtZXBhZEV2ZW50KSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaAppbmRleCA0NDNjOTUxNGNk
OTMyOTEzZGRlMzRjMjdmNmI1YjU3MjAxYTBhNDFmLi4zMWY4NDcyMTM0ZjhlZmEwZGIyY2U2Y2M0
NDdmZjcwYzk2NDZiZTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUVycm9yLmgKQEAgLTI1LDcgKzI1
LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlIDxXZWJDb3JlL0V4Y2VwdGlvbkNvZGUu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL0V4Y2VwdGlvbk9yLmg+CiAjaW5jbHVkZSA8d3RmL0VudW1U
cmFpdHMuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC0zNCwyNiArMzQsMzIgQEAgZW51bSBj
bGFzcyBGaWxlU3lzdGVtU3RvcmFnZUVycm9yIDogdWludDhfdCB7CiAgICAgRmlsZU5vdEZvdW5k
LAogICAgIEludmFsaWROYW1lLAogICAgIEludmFsaWRNb2RpZmljYXRpb24sCisgICAgSW52YWxp
ZFN0YXRlLAogICAgIFR5cGVNaXNtYXRjaCwKICAgICBVbmtub3duCiB9OwogCi1pbmxpbmUgV2Vi
Q29yZTo6RXhjZXB0aW9uQ29kZSBjb252ZXJ0VG9FeGNlcHRpb25Db2RlKEZpbGVTeXN0ZW1TdG9y
YWdlRXJyb3IgZXJyb3IpCitpbmxpbmUgV2ViQ29yZTo6RXhjZXB0aW9uT3I8dm9pZD4gY29udmVy
dFRvRXhjZXB0aW9uT3Ioc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBlcnJv
cikKIHsKLSAgICBzd2l0Y2ggKGVycm9yKSB7CisgICAgaWYgKCFlcnJvcikKKyAgICAgICAgcmV0
dXJuIHsgfTsKKworICAgIHN3aXRjaCAoKmVycm9yKSB7CiAgICAgY2FzZSBGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yOjpGaWxlTm90Rm91bmQ6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpFeGNlcHRp
b25Db2RlOjpOb3RGb3VuZEVycm9yOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9u
IHsgV2ViQ29yZTo6Tm90Rm91bmRFcnJvciB9OwogICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcjo6SW52YWxpZE1vZGlmaWNhdGlvbjoKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2Vw
dGlvbkNvZGU6OkludmFsaWRNb2RpZmljYXRpb25FcnJvcjsKKyAgICAgICAgcmV0dXJuIFdlYkNv
cmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OkludmFsaWRNb2RpZmljYXRpb25FcnJvciB9OwogICAg
IGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VHlwZU1pc21hdGNoOgotICAgICAgICByZXR1
cm4gV2ViQ29yZTo6RXhjZXB0aW9uQ29kZTo6VHlwZUVycm9yOworICAgICAgICByZXR1cm4gV2Vi
Q29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VHlwZUVycm9yIH07CiAgICAgY2FzZSBGaWxlU3lz
dGVtU3RvcmFnZUVycm9yOjpJbnZhbGlkTmFtZToKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4
Y2VwdGlvbkNvZGU6OlVua25vd25FcnJvcjsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2Vw
dGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIk5hbWUgaXMgaW52YWxpZCIgfTsKKyAgICBj
YXNlIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWRTdGF0ZToKKyAgICAgICAgcmV0dXJu
IFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OkludmFsaWRTdGF0ZUVycm9yIH07CiAgICAg
Y2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOgogICAgICAgICBicmVhazsKICAg
ICB9CiAKLSAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uQ29kZTo6VW5rbm93bkVycm9yOwor
ICAgIHJldHVybiBXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpVbmtub3duRXJyb3IgfTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkBAIC02Niw2ICs3Miw3IEBAIHRlbXBsYXRlPD4g
c3RydWN0IEVudW1UcmFpdHM8V2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiB7CiAgICAg
ICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6RmlsZU5vdEZvdW5kLAogICAgICAg
ICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWROYW1lLAogICAgICAgICBX
ZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWRNb2RpZmljYXRpb24sCisgICAg
ICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxpZFN0YXRlLAogICAgICAg
ICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlR5cGVNaXNtYXRjaCwKICAgICAgICAg
V2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duCiAgICAgPjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFn
ZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGUuY3BwCmluZGV4IDIyYmMzZWY0ZWQyNzhhMTllMjQwNmM3OTQwY2Zi
NmM4MzhkOTJkZWMuLjFmMDNlMjdjYTU1ZWI0ZDFhYjExYmNkNzUzNTMwY2JlNjE1ZjUyNjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9y
YWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5j
bHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oIgogI2luY2x1ZGUgIkZpbGVTeXN0ZW1TdG9y
YWdlTWFuYWdlci5oIgorI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIApAQCAtMTM5LDQgKzE0MCw4NyBAQCBFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgRmlsZVN5
c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OnJlc29sdgogICAgIHJl
dHVybiByZXN0UGF0aC5zcGxpdChwYXRoU2VwYXJhdG9yKTsKIH0KIAorRXhwZWN0ZWQ8V2ViQ29y
ZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFn
ZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgp
Cit7CisgICAgaWYgKCFtX21hbmFnZXIpCisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChG
aWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duKTsKKworICAgIGJvb2wgYWNxdWlyZWQgPSBt
X21hbmFnZXItPmFjcXVpcmVMb2NrRm9yRmlsZShtX3BhdGgsIG1faWRlbnRpZmllcik7CisgICAg
aWYgKCFhY3F1aXJlZCkKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I6OkludmFsaWRTdGF0ZSk7CisKKyAgICBBU1NFUlQoIW1fYWN0aXZlU3luY0Fj
Y2Vzc0hhbmRsZSk7CisgICAgbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlID0gV2ViQ29yZTo6Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUoKTsK
KyAgICByZXR1cm4gbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlLnZhbHVlKCk7Cit9CisKK0V4cGVj
dGVkPHVpbnQ2NF90LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhh
bmRsZTo6Z2V0U2l6ZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllcikKK3sKKyAgICBpZiAoIW1fbWFuYWdlcikKKyAgICAg
ICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24p
OworCisgICAgaWYgKCFtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgfHwgbV9hY3RpdmVTeW5jQWNj
ZXNzSGFuZGxlLnZhbHVlKCkgIT0gYWNjZXNzSGFuZGxlSWRlbnRpZmllcikKKyAgICAgICAgcmV0
dXJuIG1ha2VVbmV4cGVjdGVkKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24pOworCisg
ICAgYXV0byBzaXplID0gRmlsZVN5c3RlbTo6ZmlsZVNpemUobV9wYXRoKTsKKyAgICBpZiAoIXNp
emUpCisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChGaWxlU3lzdGVtU3RvcmFnZUVycm9y
OjpVbmtub3duKTsKKworICAgIHJldHVybiBzaXplLnZhbHVlKCk7Cit9CisKK3N0ZDo6b3B0aW9u
YWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OnRydW5j
YXRlKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NI
YW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXplKQoreworICAgIGlmICghbV9tYW5hZ2VyKQor
ICAgICAgICByZXR1cm4gRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bjsKKworICAgIGlm
ICghbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlIHx8IG1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZS52
YWx1ZSgpICE9IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpCisgICAgICAgIHJldHVybiBGaWxlU3lz
dGVtU3RvcmFnZUVycm9yOjpVbmtub3duOworCisgICAgYXV0byBoYW5kbGUgPSBGaWxlU3lzdGVt
OjpvcGVuRmlsZShtX3BhdGgsIEZpbGVTeXN0ZW06OkZpbGVPcGVuTW9kZTo6UmVhZFdyaXRlKTsK
KyAgICBhdXRvIGNsb3NlRmlsZVNjb3BlID0gbWFrZVNjb3BlRXhpdChbJl0geworICAgICAgICBG
aWxlU3lzdGVtOjpjbG9zZUZpbGUoaGFuZGxlKTsKKyAgICB9KTsKKworICAgIGF1dG8gcmVzdWx0
ID0gRmlsZVN5c3RlbTo6dHJ1bmNhdGVGaWxlKGhhbmRsZSwgc2l6ZSk7CisgICAgaWYgKCFyZXN1
bHQpCisgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOworCisg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKK30KKworc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Zmx1c2goV2ViQ29yZTo6RmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpCit7
CisgICAgaWYgKCFtX21hbmFnZXIpCisgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yOjpVbmtub3duOworCisgICAgaWYgKCFtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgfHwgbV9h
Y3RpdmVTeW5jQWNjZXNzSGFuZGxlLnZhbHVlKCkgIT0gYWNjZXNzSGFuZGxlSWRlbnRpZmllcikK
KyAgICAgICAgcmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd247CisKKyAgICBh
dXRvIGhhbmRsZSA9IEZpbGVTeXN0ZW06Om9wZW5GaWxlKG1fcGF0aCwgRmlsZVN5c3RlbTo6Rmls
ZU9wZW5Nb2RlOjpSZWFkV3JpdGUpOworICAgIGF1dG8gY2xvc2VGaWxlU2NvcGUgPSBtYWtlU2Nv
cGVFeGl0KFsmXSB7CisgICAgICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZShoYW5kbGUpOworICAg
IH0pOworCisgICAgYXV0byByZXN1bHQgPSBGaWxlU3lzdGVtOjpmbHVzaEZpbGUoaGFuZGxlKTsK
KyAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgcmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6
OlVua25vd247CisKKyAgICByZXR1cm4gc3RkOjpudWxsb3B0OworfQorCitzdGQ6Om9wdGlvbmFs
PEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpjbG9zZShX
ZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxl
SWRlbnRpZmllcikKK3sKKyAgICBpZiAoIW1fbWFuYWdlcikKKyAgICAgICAgcmV0dXJuIEZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd247CisKKyAgICBpZiAoIW1fYWN0aXZlU3luY0FjY2Vz
c0hhbmRsZSB8fCBtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUudmFsdWUoKSAhPSBhY2Nlc3NIYW5k
bGVJZGVudGlmaWVyKQorICAgICAgICByZXR1cm4gRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5r
bm93bjsKKworICAgIG1fbWFuYWdlci0+cmVsZWFzZUxvY2tGb3JGaWxlKG1fcGF0aCwgbV9pZGVu
dGlmaWVyKTsKKyAgICBtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgPSBzdGQ6Om51bGxvcHQ7CisK
KyAgICByZXR1cm4gc3RkOjpudWxsb3B0OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0Zp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmgKaW5kZXggODc5OTA5MDdkOWI4OWE1MjNmN2ZmMWY1NTA3
MGE1NzA2NDBhYjNiMi4uZTQ3ZWQzYTE2ZWU5NWFiMWQxNDk5MzhkMTk3ZjY0NjNkOTc0OTAxNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9y
YWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1
ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKQEAgLTQ5LDYgKzUwLDEyIEBAIHB1YmxpYzoKICAgICBzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I+IHJlbW92ZUVudHJ5KGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxl
dGVSZWN1cnNpdmVseSk7CiAgICAgRXhwZWN0ZWQ8VmVjdG9yPFN0cmluZz4sIEZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I+IHJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIp
OwogCisgICAgRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKCk7
CisgICAgRXhwZWN0ZWQ8dWludDY0X3QsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGdldFNpemUo
V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyKTsKKyAgICBzdGQ6
Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHRydW5jYXRlKFdlYkNvcmU6OkZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSk7CisgICAgc3Rk
OjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBmbHVzaChXZWJDb3JlOjpGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpOworICAgIHN0ZDo6b3B0aW9uYWw8RmlsZVN5
c3RlbVN0b3JhZ2VFcnJvcj4gY2xvc2UoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyKTsKKwogcHJpdmF0ZToKICAgICBFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVxdWVzdENyZWF0
ZUhhbmRsZShJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlELCBUeXBlLCBTdHJpbmcmJiBuYW1lLCBi
b29sIGNyZWF0ZUlmTmVjZXNzYXJ5KTsKIApAQCAtNTcsNiArNjQsNyBAQCBwcml2YXRlOgogICAg
IFR5cGUgbV90eXBlOwogICAgIFN0cmluZyBtX3BhdGg7CiAgICAgU3RyaW5nIG1fbmFtZTsKKyAg
ICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRp
Zmllcj4gbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmls
ZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IDFiN2E1MWEyZjY4ODQx
NWMzOTZiNWI0OGZkYzA1Zjk5NWZjNmQzZGUuLjk0OGVlYjdjMTcxNTVhMTM3MzgwZDdiZjY4MjA0
MTI4NzRhNWI3YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3Rv
cmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC0yOCw2
ICsyOCw3IEBACiAKICNpbmNsdWRlICJGaWxlU3lzdGVtU3RvcmFnZUVycm9yLmgiCiAjaW5jbHVk
ZSAiRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeS5oIgorI2luY2x1ZGUgPHd0Zi9TY29w
ZS5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtODcsMTUgKzg4LDIxIEBAIHZvaWQgRmls
ZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOjpjb25uZWN0aW9uQ2xvc2VkKElQQzo6Q29ubmVjdGlvbjo6
VW5pcXVlSUQgY29ubmVjCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKLSAg
ICBhdXRvIGhhbmRsZXMgPSBtX2hhbmRsZXNCeUNvbm5lY3Rpb24uZmluZChjb25uZWN0aW9uKTsK
LSAgICBpZiAoaGFuZGxlcyA9PSBtX2hhbmRsZXNCeUNvbm5lY3Rpb24uZW5kKCkpCisgICAgYXV0
byBjb25uZWN0aW9uSGFuZGxlcyA9IG1faGFuZGxlc0J5Q29ubmVjdGlvbi5maW5kKGNvbm5lY3Rp
b24pOworICAgIGlmIChjb25uZWN0aW9uSGFuZGxlcyA9PSBtX2hhbmRsZXNCeUNvbm5lY3Rpb24u
ZW5kKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGZvciAoYXV0byBoYW5kbGVJZGVudGlmaWVy
IDogaGFuZGxlcy0+dmFsdWUpIHsKLSAgICAgICAgYXV0byBoYW5kbGUgPSBtX2hhbmRsZXMudGFr
ZShoYW5kbGVJZGVudGlmaWVyKTsKLSAgICAgICAgbV9yZWdpc3RyeS51bnJlZ2lzdGVySGFuZGxl
KGhhbmRsZUlkZW50aWZpZXIpOworICAgIGF1dG8gaWRlbnRpZmllcnMgPSBjb25uZWN0aW9uSGFu
ZGxlcy0+dmFsdWU7CisgICAgZm9yIChhdXRvIGlkZW50aWZpZXIgOiBpZGVudGlmaWVycykgewor
ICAgICAgICBhdXRvIGhhbmRsZSA9IG1faGFuZGxlcy50YWtlKGlkZW50aWZpZXIpOworICAgICAg
ICBtX3JlZ2lzdHJ5LnVucmVnaXN0ZXJIYW5kbGUoaWRlbnRpZmllcik7CiAgICAgfQotICAgIG1f
aGFuZGxlc0J5Q29ubmVjdGlvbi5yZW1vdmUoaGFuZGxlcyk7CisKKyAgICBtX2xvY2tNYXAucmVt
b3ZlSWYoWyZpZGVudGlmaWVyc10oYXV0byYgZW50cnkpIHsKKyAgICAgICAgcmV0dXJuIGlkZW50
aWZpZXJzLmNvbnRhaW5zKGVudHJ5LnZhbHVlKTsKKyAgICB9KTsKKworICAgIG1faGFuZGxlc0J5
Q29ubmVjdGlvbi5yZW1vdmUoY29ubmVjdGlvbkhhbmRsZXMpOwogfQogCiBFeHBlY3RlZDxXZWJD
b3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4g
RmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOjpnZXREaXJlY3RvcnkoSVBDOjpDb25uZWN0aW9uOjpV
bmlxdWVJRCBjb25uZWN0aW9uKQpAQCAtMTA1LDQgKzExMiwyMyBAQCBFeHBlY3RlZDxXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmls
ZVN5c3RlbQogICAgIHJldHVybiBjcmVhdGVIYW5kbGUoY29ubmVjdGlvbiwgRmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGU6OlR5cGU6OkRpcmVjdG9yeSwgU3RyaW5nIHsgbV9wYXRoIH0sIHsgfSwgdHJ1
ZSk7CiB9CiAKK2Jvb2wgRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOjphY3F1aXJlTG9ja0ZvckZp
bGUoY29uc3QgU3RyaW5nJiBwYXRoLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciBpZGVudGlmaWVyKQoreworICAgIGlmIChtX2xvY2tNYXAuY29udGFpbnMocGF0aCkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIG1fbG9ja01hcC5hZGQocGF0aCwgaWRlbnRpZmllcik7
CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOjpy
ZWxlYXNlTG9ja0ZvckZpbGUoY29uc3QgU3RyaW5nJiBwYXRoLCBXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGlmIChhdXRvIGxvY2tlZEJ5SWRl
bnRpZmllciA9IG1fbG9ja01hcC5nZXQocGF0aCk7IGxvY2tlZEJ5SWRlbnRpZmllciA9PSBpZGVu
dGlmaWVyKSB7CisgICAgICAgIG1fbG9ja01hcC5yZW1vdmUocGF0aCk7CisgICAgICAgIHJldHVy
biB0cnVlOworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
RmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmgKaW5kZXggOGI0MzhiMmU5M2RmNGE4
NDQ3YzNiNzc0MGJjNTRjODdmY2E0MzE5Zi4uMWFlYmE5ZGFmNzk2OGM2OGQ4ZmU4YjNiZTdiNjc1
NTI4M2Q3NjEzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9y
YWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuaApAQCAtNDMsMTIgKzQz
LDE1IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIGdldFBhdGgoV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIpOwogICAgIHZvaWQgY29ubmVjdGlvbkNsb3NlZChJUEM6OkNv
bm5lY3Rpb246OlVuaXF1ZUlEKTsKICAgICBFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gZ2V0RGlyZWN0b3J5KElQQzo6
Q29ubmVjdGlvbjo6VW5pcXVlSUQpOworICAgIGJvb2wgYWNxdWlyZUxvY2tGb3JGaWxlKGNvbnN0
IFN0cmluZyYgcGF0aCwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIpOworICAg
IGJvb2wgcmVsZWFzZUxvY2tGb3JGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCwgV2ViQ29yZTo6Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIpOwogCiBwcml2YXRlOgogICAgIFN0cmluZyBtX3BhdGg7
CiAgICAgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeSYgbV9yZWdpc3RyeTsKICAgICBI
YXNoTWFwPElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQsIEhhc2hTZXQ8V2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXI+PiBtX2hhbmRsZXNCeUNvbm5lY3Rpb247CiAgICAgSGFzaE1h
cDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPEZp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlPj4gbV9oYW5kbGVzOworICAgIEhhc2hNYXA8U3RyaW5nLCBX
ZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcj4gbV9sb2NrTWFwOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IDY3YWVi
YTUyMDZhNjYyYzYxZDliMGU1NmQ1NTk1MDljYjEyYTUwMjUuLjM2ODYxNzQyODE4MGQ3ODQ2YjJk
NjJmMDYwZTk5ZTVkYzdhN2RkNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC0y
MjYsNSArMjI2LDYwIEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpyZXNvbHZlKFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpCiAgICAgY29tcGxldGlvbkhh
bmRsZXIoaGFuZGxlLT5yZXNvbHZlKHRhcmdldElkZW50aWZpZXIpKTsKIH0KIAordm9pZCBOZXR3
b3JrU3RvcmFnZU1hbmFnZXI6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChF
eHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZp
bGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBBU1NF
UlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAgIGF1dG8gaGFuZGxlID0gbV9maWxlU3lzdGVt
U3RvcmFnZUhhbmRsZVJlZ2lzdHJ5LT5nZXRIYW5kbGUoaWRlbnRpZmllcik7CisgICAgaWYgKCFo
YW5kbGUpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZChG
aWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duKSk7CisKKyAgICBjb21wbGV0aW9uSGFuZGxl
cihoYW5kbGUtPmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKSk7Cit9CisKK3ZvaWQgTmV0d29ya1N0
b3JhZ2VNYW5hZ2VyOjpnZXRTaXplRm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKEV4cGVjdGVkPHVpbnQ2NF90LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit7CisgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CisKKyAg
ICBhdXRvIGhhbmRsZSA9IG1fZmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeS0+Z2V0SGFu
ZGxlKGlkZW50aWZpZXIpOworICAgIGlmICghaGFuZGxlKQorICAgICAgICByZXR1cm4gY29tcGxl
dGlvbkhhbmRsZXIobWFrZVVuZXhwZWN0ZWQoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93
bikpOworCisgICAgY29tcGxldGlvbkhhbmRsZXIoaGFuZGxlLT5nZXRTaXplKGFjY2Vzc0hhbmRs
ZUlkZW50aWZpZXIpKTsKK30KKwordm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OnRydW5jYXRl
Rm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50
aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nl
c3NIYW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQoreworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgYXV0byBoYW5k
bGUgPSBtX2ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnktPmdldEhhbmRsZShpZGVudGlm
aWVyKTsKKyAgICBpZiAoIWhhbmRsZSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVy
KEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24pOworCisgICAgY29tcGxldGlvbkhhbmRs
ZXIoaGFuZGxlLT50cnVuY2F0ZShhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBzaXplKSk7Cit9CisK
K3ZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpmbHVzaEZvckFjY2Vzc0hhbmRsZShXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigp
KTsKKworICAgIGF1dG8gaGFuZGxlID0gbV9maWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5
LT5nZXRIYW5kbGUoaWRlbnRpZmllcik7CisgICAgaWYgKCFoYW5kbGUpCisgICAgICAgIHJldHVy
biBjb21wbGV0aW9uSGFuZGxlcihGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duKTsKKwor
ICAgIGNvbXBsZXRpb25IYW5kbGVyKGhhbmRsZS0+Zmx1c2goYWNjZXNzSGFuZGxlSWRlbnRpZmll
cikpOworfQorCit2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Y2xvc2VBY2Nlc3NIYW5kbGUo
V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFn
ZUVycm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgQVNTRVJUKCFSdW5Mb29wOjpp
c01haW4oKSk7CisKKyAgICBhdXRvIGhhbmRsZSA9IG1fZmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVS
ZWdpc3RyeS0+Z2V0SGFuZGxlKGlkZW50aWZpZXIpOworICAgIGlmICghaGFuZGxlKQorICAgICAg
ICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93
bik7CisKKyAgICBjb21wbGV0aW9uSGFuZGxlcihoYW5kbGUtPmNsb3NlKGFjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIu
aCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1h
bmFnZXIuaAppbmRleCAxYjgxMGRmNzhkNzNkMmZmMDllODRkZTJjY2IyMmJhMDYxODAxMWM4Li5h
ODE4ODUxZmYxNDUzODY4YTc0ZDE3NmZiNmNiMjhmMjFhYjMyMzFiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdl
TWFuYWdlci5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiT3JpZ2luU3RvcmFnZU1hbmFn
ZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NsaWVudE9yaWdpbi5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9u
SUQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjksNiArNzAsMTEgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGdldERpcmVjdG9yeUhhbmRsZShJUEM6OkNvbm5lY3Rpb24mLCBXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgU3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5l
Y2Vzc2FyeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAgICB2
b2lkIHJlbW92ZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHksIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwogICAgIHZv
aWQgcmVzb2x2ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0
ZWQ8VmVjdG9yPFN0cmluZz4sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CisgICAgdm9p
ZCBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsK
KyAgICB2b2lkIGdldFNpemVGb3JBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
ciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDx1aW50NjRfdCwgRmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcj4pPiYmKTsKKyAgICB2b2lkIHRydW5jYXRlRm9yQWNjZXNzSGFuZGxlKFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIsIHVpbnQ2NF90IHNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOworICAgIHZvaWQg
Zmx1c2hGb3JBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIs
IFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7
CisgICAgdm9pZCBjbG9zZUFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJv
cj4pPiYmKTsKIAogICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogICAgIFJlZjxXb3Jr
UXVldWU+IG1fcXVldWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5p
bgppbmRleCA2MmU3NDAzY2JiNzAwYWQ5NmJiZWJlMGZlYjgyMDVjODE2MjI0ZmY3Li40ZmVhMjc2
NWZkOTJhOTgwNjBjZDA0MDA2MmM1ZTk0NTVjODE5ZmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3Rv
cmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTMyLDQgKzMyLDEwIEBACiAgICAgR2V0RGlyZWN0
b3J5SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIs
IFN0cmluZyBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5KSAtPiAoRXhwZWN0ZWQ8V2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcj4gcmVzdWx0KSBBc3luYyBXYW50c0Nvbm5lY3Rpb24KICAgICBSZW1vdmVFbnRyeShXZWJD
b3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdHJpbmcgbmFtZSwg
Ym9vbCBkZWxldGVSZWN1cnNpdmVseSkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpGaWxlU3lz
dGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCiAgICAgUmVzb2x2ZShXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciB0YXJnZXRJZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8VmVjdG9yPFN0cmlu
Zz4sIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYworCisgICAg
Q3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciBpZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGVJZGVudGlmaWVyLCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkg
QXN5bmMKKyAgICBHZXRTaXplRm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8dWludDY0
X3QsIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYworICAgIFRy
dW5jYXRlRm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
IGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
ciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXplKSAtPiAoc3RkOjpvcHRpb25h
bDxXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKKyAgICBGbHVz
aEZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNj
ZXNzSGFuZGxlSWRlbnRpZmllcikgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpGaWxlU3lzdGVt
U3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCisgICAgQ2xvc2VBY2Nlc3NIYW5kbGUoV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpIC0+
IChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBB
c3luYwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdl
cy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggZWQ5
NGEzZWU1NjY4YTM0OGJjNzZhZGJkNDJiNjUwMDcxZDFiOTUxYS4uNTk2YjNmYWI2NTg2NmJkZWY1
ODEyODBkOTExNjIwYzA3NGY2N2VmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRz
L3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5CkBAIC0yODIsNiArMjgyLDcgQEAgZGVmIHR5cGVzX3RoYXRfY2Fubm90X2JlX2Zv
cndhcmRfZGVjbGFyZWQoKToKICAgICAgICAgJ1dlYkNvcmU6OkRyYWdBcHBsaWNhdGlvbkZsYWdz
JywKICAgICAgICAgJ1dlYkNvcmU6OkZldGNoSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcicsCisgICAgICAgICdXZWJDb3JlOjpGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRl
cycsCiAgICAgICAgICdXZWJDb3JlOjpJbWFnZURlY29kZXJJZGVudGlmaWVyJywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggYjA1NGM5MjM4
YmRkMmZjZWM4MTI5YjAzMDZiNTNiYmZiMWM3ZGY5My4uZmI3M2E4OTUyZTA5Y2ZhNWQwNGUzMWU5
NWU0M2M0N2MzODcwZDZkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5jcHAKQEAgLTY3LDcgKzY3LDcgQEAgdm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb246OmdldEZpbGVIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW4K
IAogICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3Jr
U3RvcmFnZU1hbmFnZXI6OkdldEZpbGVIYW5kbGUoaWRlbnRpZmllciwgbmFtZSwgY3JlYXRlSWZO
ZWNlc3NhcnkpLCBbbmFtZSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKV0oYXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAoIXJlc3VsdCkKLSAg
ICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBj
b252ZXJ0VG9FeGNlcHRpb25Db2RlKHJlc3VsdC5lcnJvcigpKSB9KTsKKyAgICAgICAgICAgIHJl
dHVybiBjb21wbGV0aW9uSGFuZGxlcihjb252ZXJ0VG9FeGNlcHRpb25PcihyZXN1bHQuZXJyb3Io
KSkucmVsZWFzZUV4Y2VwdGlvbigpKTsKIAogICAgICAgICBhdXRvIGlkZW50aWZpZXIgPSByZXN1
bHQudmFsdWUoKTsKICAgICAgICAgaWYgKCFpZGVudGlmaWVyLmlzVmFsaWQoKSkKQEAgLTg0LDcg
Kzg0LDcgQEAgdm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldERpcmVjdG9y
eUhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGwKIAogICAgIG1fY29ubmVjdGlvbi0+c2Vu
ZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OkdldERpcmVj
dG9yeUhhbmRsZShpZGVudGlmaWVyLCBuYW1lLCBjcmVhdGVJZk5lY2Vzc2FyeSksIFtuYW1lLCBj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIHJlc3Vs
dCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghcmVzdWx0KQotICAgICAgICAgICAgcmV0dXJuIGNv
bXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IGNvbnZlcnRUb0V4Y2VwdGlvbkNv
ZGUocmVzdWx0LmVycm9yKCkpIH0pOworICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5k
bGVyKGNvbnZlcnRUb0V4Y2VwdGlvbk9yKHJlc3VsdC5lcnJvcigpKS5yZWxlYXNlRXhjZXB0aW9u
KCkpOwogCiAgICAgICAgIGF1dG8gaWRlbnRpZmllciA9IHJlc3VsdC52YWx1ZSgpOwogICAgICAg
ICBpZiAoIWlkZW50aWZpZXIuaXNWYWxpZCgpKQpAQCAtOTQsMTYgKzk0LDEzIEBAIHZvaWQgV2Vi
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpnZXREaXJlY3RvcnlIYW5kbGUoV2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsCiAgICAgfSk7CiB9CiAKLXZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOjpyZW1vdmVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHks
IFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6UmVtb3ZlRW50cnlDYWxsYmFj
ayYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b246OnJlbW92ZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgV2ViQ29y
ZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJiBjb21wbGV0aW9u
SGFuZGxlcikKIHsKICAgICBpZiAoIW1fY29ubmVjdGlvbikKICAgICAgICAgcmV0dXJuIGNvbXBs
ZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwg
IkNvbm5lY3Rpb24gaXMgbG9zdCIgfSk7CiAKICAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5
bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpSZW1vdmVFbnRyeShpZGVu
dGlmaWVyLCBuYW1lLCBkZWxldGVSZWN1cnNpdmVseSksIFtjb21wbGV0aW9uSGFuZGxlciA9IFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIGVycm9yKSBtdXRhYmxlIHsKLSAgICAgICAg
aWYgKGVycm9yKQotICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6
OkV4Y2VwdGlvbiB7IGNvbnZlcnRUb0V4Y2VwdGlvbkNvZGUoZXJyb3IudmFsdWUoKSkgfSk7Ci0K
LSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRp
b25IYW5kbGVyKGNvbnZlcnRUb0V4Y2VwdGlvbk9yKGVycm9yKSk7CiAgICAgfSk7CiB9CiAKQEAg
LTExNCwxMCArMTExLDY2IEBAIHZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpy
ZXNvbHZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyCiAKICAgICBtX2Nvbm5l
Y3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2Vy
OjpSZXNvbHZlKGlkZW50aWZpZXIsIG90aGVySWRlbnRpZmllciksIFtjb21wbGV0aW9uSGFuZGxl
ciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CiAg
ICAgICAgIGlmICghcmVzdWx0KQotICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVy
KFdlYkNvcmU6OkV4Y2VwdGlvbiB7IGNvbnZlcnRUb0V4Y2VwdGlvbkNvZGUocmVzdWx0LmVycm9y
KCkpIH0pOworICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGNvbnZlcnRUb0V4
Y2VwdGlvbk9yKHJlc3VsdC5lcnJvcigpKS5yZWxlYXNlRXhjZXB0aW9uKCkpOworCisgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUocmVzdWx0LnZhbHVlKCkpKTsKKyAgICB9KTsKK30K
Kwordm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0ZVN5bmNBY2Nlc3NI
YW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6Rmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRBY2Nlc3NIYW5kbGVDYWxsYmFjayYmIGNvbXBs
ZXRpb25IYW5kbGVyKQoreworICAgIGlmICghbV9jb25uZWN0aW9uKQorICAgICAgICByZXR1cm4g
Y29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVy
cm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0IiB9KTsKKworICAgIG1fY29ubmVjdGlvbi0+c2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OkNyZWF0ZVN5bmNB
Y2Nlc3NIYW5kbGUoaWRlbnRpZmllciksIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghcmVz
dWx0KQorICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGNvbnZlcnRUb0V4Y2Vw
dGlvbk9yKHJlc3VsdC5lcnJvcigpKS5yZWxlYXNlRXhjZXB0aW9uKCkpOwogCiAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKFdURk1vdmUocmVzdWx0LnZhbHVlKCkpKTsKICAgICB9KTsKIH0KIAor
dm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldFNpemUoV2ViQ29yZTo6Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEludGVnZXJD
YWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmICghbV9jb25uZWN0aW9uKQor
ICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2Vi
Q29yZTo6VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0IiB9KTsKKworICAgIG1fY29u
bmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFn
ZXI6OkdldFNpemVGb3JBY2Nlc3NIYW5kbGUoaWRlbnRpZmllciwgYWNjZXNzSGFuZGxlSWRlbnRp
ZmllciksIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShh
dXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghcmVzdWx0KQorICAgICAgICAgICAg
cmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGNvbnZlcnRUb0V4Y2VwdGlvbk9yKHJlc3VsdC5lcnJv
cigpKS5yZWxlYXNlRXhjZXB0aW9uKCkpOworCisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHJl
c3VsdC52YWx1ZSgpKTsKKyAgICB9KTsKK30KKwordm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OnRydW5jYXRlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBh
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXplLCBWb2lkQ2FsbGJhY2smJiBjb21w
bGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoIW1fY29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJu
IGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25F
cnJvciwgIkNvbm5lY3Rpb24gaXMgbG9zdCIgfSk7CisKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpUcnVuY2F0ZUZv
ckFjY2Vzc0hhbmRsZShpZGVudGlmaWVyLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBzaXplKSwg
W2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8gZXJy
b3IpIG11dGFibGUgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjb252ZXJ0VG9FeGNlcHRp
b25PcihlcnJvcikpOworICAgIH0pOworfQorCit2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbjo6Zmx1c2goV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRp
ZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vz
c0hhbmRsZUlkZW50aWZpZXIsIFZvaWRDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQorewor
ICAgIGlmICghbV9jb25uZWN0aW9uKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIo
V2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBp
cyBsb3N0IiB9KTsKKworICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3Nh
Z2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OkZsdXNoRm9yQWNjZXNzSGFuZGxlKGlkZW50aWZp
ZXIsIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byBlcnJvcikgbXV0YWJsZSB7CisgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKGNvbnZlcnRUb0V4Y2VwdGlvbk9yKGVycm9yKSk7CisgICAgfSk7Cit9CisK
K3ZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjbG9zZShXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgVm9pZENhbGxi
YWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAg
ICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3Jl
OjpVbmtub3duRXJyb3IsICJDb25uZWN0aW9uIGlzIGxvc3QiIH0pOworCisgICAgbV9jb25uZWN0
aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6
Q2xvc2VBY2Nlc3NIYW5kbGUoaWRlbnRpZmllciwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciksIFtj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIGVycm9y
KSBtdXRhYmxlIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY29udmVydFRvRXhjZXB0aW9u
T3IoZXJyb3IpKTsKKyAgICB9KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKaW5kZXggYjYwMWJlNjQzNTNk
YWZjNzc3YzZiY2U0MmIxZTlmMjkxMzkyMzBjMi4uMDI4NGM5YmYzODgyYjJjZjRjMWE2NjMzYWZl
ZjQyN2U2YmE3OTk5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24uaApAQCAtNTEsOSArNTEsMTUgQEAgcHJpdmF0ZToKICAgICB2b2lkIGlzU2FtZUVudHJ5
KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpT
YW1lRW50cnlDYWxsYmFjayYmKTsKICAgICB2b2lkIGdldEZpbGVIYW5kbGUoV2ViQ29yZTo6Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJ
Zk5lY2Vzc2FyeSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRIYW5k
bGVDYWxsYmFjayYmKTsKICAgICB2b2lkIGdldERpcmVjdG9yeUhhbmRsZShXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlm
TmVjZXNzYXJ5LCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhhbmRs
ZUNhbGxiYWNrJiYpOwotICAgIHZvaWQgcmVtb3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVs
eSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpSZW1vdmVFbnRyeUNhbGxi
YWNrJiYpOworICAgIHZvaWQgcmVtb3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgV2Vi
Q29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJik7CiAgICAg
dm9pZCByZXNvbHZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOjpSZXNvbHZlQ2FsbGJhY2smJik7CiAKKyAgICB2b2lkIGNyZWF0ZVN5bmNBY2Nl
c3NIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6R2V0QWNjZXNzSGFuZGxlQ2FsbGJhY2smJikgZmluYWw7CisgICAg
dm9pZCBnZXRTaXplKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bjo6SW50ZWdlckNhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgdHJ1bmNhdGUoRmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwg
dWludDY0X3Qgc2l6ZSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lk
Q2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBmbHVzaChGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lk
IGNsb3NlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Vm9p
ZENhbGxiYWNrJiYpIGZpbmFsOworCiAgICAgUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4gbV9jb25u
ZWN0aW9uOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggMmFjYjVm
YWFmM2Y0NmQ3Zjg0ZGJiYmI4NzMzMmQzMzY1NDkwMzc2ZC4uZTA1Njk4ZjM0YWYzMTQxMDEyZTNh
ZmQyNmYxNmVlYmIwYWYxMjI0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlN0b3JhZ2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3RvcmFnZUNvbm5lY3Rpb24uY3BwCkBA
IC01Niw3ICs1Niw3IEBAIHZvaWQgV2ViU3RvcmFnZUNvbm5lY3Rpb246OmZpbGVTeXN0ZW1HZXRE
aXJlY3RvcnkoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvCiAgICAgYXV0byYgY29ubmVj
dGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbigpLmNvbm5lY3Rpb24oKTsKICAgICBjb25uZWN0aW9uLnNlbmRXaXRoQXN5bmNSZXBseShN
ZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpGaWxlU3lzdGVtR2V0RGlyZWN0b3J5KG9y
aWdpbiksIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShh
dXRvIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghcmVzdWx0KQotICAgICAgICAgICAg
cmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IGNvbnZlcnRUb0V4
Y2VwdGlvbkNvZGUocmVzdWx0LmVycm9yKCkpIH0pOworICAgICAgICAgICAgcmV0dXJuIGNvbXBs
ZXRpb25IYW5kbGVyKGNvbnZlcnRUb0V4Y2VwdGlvbk9yKHJlc3VsdC5lcnJvcigpKS5yZWxlYXNl
RXhjZXB0aW9uKCkpOwogCiAgICAgICAgIGF1dG8gaWRlbnRpZmllciA9IHJlc3VsdC52YWx1ZSgp
OwogICAgICAgICBpZiAoIWlkZW50aWZpZXIuaXNWYWxpZCgpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGI0YjY3Njg1ZmNi
MDFiYjdlNTVlZWQyMDkwYWY3NTRiMzg5MDRjYzIuLjVkODA3M2ZlOWE4ZjBjNmNkZTZkNTU3NDcw
NDVjYmYzZTQ3NmI1M2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0xMC0wNSAgU2lodWkg
TGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzMTE4NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODM4NDc4NTk+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdG9y
YWdlL2ZpbGVzeXN0ZW1hY2Nlc3MvcmVzb3VyY2VzL3N5bmMtYWNjZXNzLWhhbmRsZS1iYXNpY3Mu
anM6IEFkZGVkLgorICAgICAgICAoZmluaXNoVGVzdCk6CisgICAgICAgIChnZXREaXJlY3Rvcnkp
OgorICAgICAgICAqIHN0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUt
YmFzaWNzLXdvcmtlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvZmls
ZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtYmFzaWNzLXdvcmtlci5odG1sOiBBZGRl
ZC4KKwogMjAyMS0xMC0wNSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4K
IAogICAgICAgICBSRUdSRVNTSU9OIChyMjgzMzM1KTogTW9tZW50dW0gc2Nyb2xsaW5nIGlzIG5v
IGxvbmdlciBsb2NrZWQgdG8gYW4gYXhpcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5k
ZXggN2M0Y2Y3YjRhOWUxYTNmZWRlNGExZjA1NzA3M2ZiMGVmZWM4NWVlNi4uMjVhMWY0NDIzZjlh
MTE5MjY0MTI3MjgwNmMxYmQ3OTI1ZWJjNzg2MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMTAtMDUgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBh
cHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzExODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzODQ3ODU5PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Zp
bGUtc3lzdGVtLWFjY2Vzcy9zYW5kYm94ZWRfRmlsZVN5c3RlbUZpbGVIYW5kbGUtc3luYy1hY2Nl
c3MtaGFuZGxlLWxvY2suaHR0cHMudGVudGF0aXZlLndvcmtlci1leHBlY3RlZC50eHQ6CisKIDIw
MjEtMTAtMDUgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFtjc3MtcG9zaXRpb24tc3RpY2t5XSBzY3JvbGxJbnRvVmlldyBzaG91bGQgbm90IHRha2Ug
aW50byBhY2NvdW50IHN0aWNreSBwb3NpdGlvbmluZyBvZmZzZXRzCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZpbGUtc3lzdGVtLWFjY2Vz
cy9zYW5kYm94ZWRfRmlsZVN5c3RlbUZpbGVIYW5kbGUtc3luYy1hY2Nlc3MtaGFuZGxlLWxvY2su
aHR0cHMudGVudGF0aXZlLndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZpbGUtc3lzdGVtLWFjY2Vzcy9zYW5kYm94ZWRfRmls
ZVN5c3RlbUZpbGVIYW5kbGUtc3luYy1hY2Nlc3MtaGFuZGxlLWxvY2suaHR0cHMudGVudGF0aXZl
Lndvcmtlci1leHBlY3RlZC50eHQKaW5kZXggYjQ2MjhhN2RmMjJkZmU4OGE3YjM3MTJmZmIzNjdk
ZmNjZWVlODcwNC4uN2RhZGMyZDRmMDZkODQ0YTIxMmY2NDA0YzBkMWFiOWY1NjM3MGNiOSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9maWxl
LXN5c3RlbS1hY2Nlc3Mvc2FuZGJveGVkX0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLXN5bmMtYWNjZXNz
LWhhbmRsZS1sb2NrLmh0dHBzLnRlbnRhdGl2ZS53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmlsZS1zeXN0ZW0tYWNj
ZXNzL3NhbmRib3hlZF9GaWxlU3lzdGVtRmlsZUhhbmRsZS1zeW5jLWFjY2Vzcy1oYW5kbGUtbG9j
ay5odHRwcy50ZW50YXRpdmUud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKIAot
RkFJTCBUaGVyZSBjYW4gb25seSBiZSBvbmUgb3BlbiBhY2Nlc3MgaGFuZGxlIGF0IGFueSBnaXZl
biB0aW1lIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmpl
Y3QgIlR5cGVFcnJvcjogZmlsZUhhbmRsZS5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlIGlzIG5vdCBh
IGZ1bmN0aW9uLiAoSW4gJ2ZpbGVIYW5kbGUuY3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpJywgJ2Zp
bGVIYW5kbGUuY3JlYXRlU3luY0FjY2Vzc0hhbmRsZScgaXMgdW5kZWZpbmVkKSIKLUZBSUwgQW4g
YWNjZXNzIGhhbmRsZSBmcm9tIG9uZSBmaWxlIGRvZXMgbm90IGludGVyZmVyZSB3aXRoIHRoZSBj
cmVhdGlvbiBvZiBhbiBhY2Nlc3MgaGFuZGxlIG9uIGFub3RoZXIgZmlsZSBwcm9taXNlX3Rlc3Q6
IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IGZvb0Zp
bGVIYW5kbGUuY3JlYXRlU3luY0FjY2Vzc0hhbmRsZSBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdm
b29GaWxlSGFuZGxlLmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKScsICdmb29GaWxlSGFuZGxlLmNy
ZWF0ZVN5bmNBY2Nlc3NIYW5kbGUnIGlzIHVuZGVmaW5lZCkiCitQQVNTIFRoZXJlIGNhbiBvbmx5
IGJlIG9uZSBvcGVuIGFjY2VzcyBoYW5kbGUgYXQgYW55IGdpdmVuIHRpbWUKK1BBU1MgQW4gYWNj
ZXNzIGhhbmRsZSBmcm9tIG9uZSBmaWxlIGRvZXMgbm90IGludGVyZmVyZSB3aXRoIHRoZSBjcmVh
dGlvbiBvZiBhbiBhY2Nlc3MgaGFuZGxlIG9uIGFub3RoZXIgZmlsZQogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3MvcmVzb3VyY2VzL3N5bmMtYWNjZXNz
LWhhbmRsZS1iYXNpY3MuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mv
cmVzb3VyY2VzL3N5bmMtYWNjZXNzLWhhbmRsZS1iYXNpY3MuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTY3MTI1
YTQ2ZGM2YjZlYzNmY2ZlZjEzOTRhODYwOGM4NjUyODcyYwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9yZXNvdXJjZXMvc3luYy1hY2Nlc3Mt
aGFuZGxlLWJhc2ljcy5qcwpAQCAtMCwwICsxLDgxIEBACitpZiAodGhpcy5pbXBvcnRTY3JpcHRz
KSB7CisgICAgaW1wb3J0U2NyaXB0cygnLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMnKTsK
K30KKworZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgYmFzaWMgZnVudGlvbmFsaXRpZXMg
b2YgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuIik7CisKK3ZhciByb290SGFuZGxlLCBmaWxl
SGFuZGxlLCBhY2Nlc3NIYW5kbGUxLCBhY2Nlc3NIYW5kbGUyLCBjcmVhdGVFcnJvcjsKKworZnVu
Y3Rpb24gZmluaXNoVGVzdChlcnJvcikKK3sKKyAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgdGVz
dEZhaWxlZChlcnJvcik7CisgICAgfQorICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitmdW5jdGlv
biBnZXREaXJlY3RvcnkoKSB7CisgICAgbmF2aWdhdG9yLnN0b3JhZ2UuZ2V0RGlyZWN0b3J5KCku
dGhlbigoaGFuZGxlKSA9PiB7CisgICAgICAgIHJvb3RIYW5kbGUgPSBoYW5kbGU7CisgICAgICAg
IGNyZWF0ZUZpbGVIYW5kbGUocm9vdEhhbmRsZSk7CisgICAgfSkuY2F0Y2goKGVycm9yKSA9PiB7
CisgICAgICAgIGZpbmlzaFRlc3QoZXJyb3IpOworICAgIH0pOworfQorCitmdW5jdGlvbiBjcmVh
dGVGaWxlSGFuZGxlKGZyb21IYW5kbGUpIHsKKyAgICBmcm9tSGFuZGxlLmdldEZpbGVIYW5kbGUo
InN5bmMtYWNjZXNzLWhhbmRsZS50eHQiLCB7ICJjcmVhdGUiIDogdHJ1ZSB9KS50aGVuKChoYW5k
bGUpID0+IHsKKyAgICAgICAgZmlsZUhhbmRsZSA9IGhhbmRsZTsKKyAgICAgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJmaWxlSGFuZGxlLm5hbWUiLCAic3luYy1hY2Nlc3MtaGFuZGxlLnR4dCIp
OworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImZpbGVIYW5kbGUua2luZCIsICJmaWxl
Iik7CisgICAgICAgIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoZmlsZUhhbmRsZSk7CisgICAgfSku
Y2F0Y2goKGVycm9yKSA9PiB7CisgICAgICAgIGZpbmlzaFRlc3QoZXJyb3IpOworICAgIH0pOwor
fQorCitmdW5jdGlvbiBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKGZyb21IYW5kbGUpIHsKKyAgICBm
cm9tSGFuZGxlLmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKS50aGVuKChoYW5kbGUpID0+IHsKKyAg
ICAgICAgYWNjZXNzSGFuZGxlMSA9IGhhbmRsZTsKKyAgICAgICAgZGVidWcoImFjY2Vzc0hhbmRs
ZTEgaXMgY3JlYXRlZCIpOworICAgICAgICBnZXRTaXplKGFjY2Vzc0hhbmRsZTEpOworICAgIH0p
LmNhdGNoKChlcnJvcikgPT4geworICAgICAgICBmaW5pc2hUZXN0KGVycm9yKTsKKyAgICB9KTsK
K30KKworZnVuY3Rpb24gZ2V0U2l6ZShhY2Nlc3NIYW5kbGUpIHsKKyAgICBhY2Nlc3NIYW5kbGUu
Z2V0U2l6ZSgpLnRoZW4oKHJlc3VsdCkgPT4geworICAgICAgICBzaXplID0gcmVzdWx0OworICAg
ICAgICBzaG91bGRCZSgic2l6ZSIsICIwIik7CisgICAgICAgIGNyZWF0ZVNlY29uZFN5bmNBY2Vz
c0hhbmRsZShmaWxlSGFuZGxlKTsKKyAgICB9KS5jYXRjaCgoZXJyb3IpID0+IHsKKyAgICAgICAg
ZmluaXNoVGVzdChlcnJvcik7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZVNlY29uZFN5
bmNBY2Vzc0hhbmRsZShmcm9tSGFuZGxlKSB7CisgICAgZnJvbUhhbmRsZS5jcmVhdGVTeW5jQWNj
ZXNzSGFuZGxlKCkudGhlbigoaGFuZGxlKSA9PiB7CisgICAgICAgIGFjY2Vzc0hhbmRsZTIgPSBo
YW5kbGU7CisgICAgICAgIC8vIFNlY29uZCBjcmVhdGlvbiBzaG91bGQgc3VjY2VlZC4KKyAgICAg
ICAgZGVidWcoImFjY2Vzc0hhbmRsZTIgaXMgY3JlYXRlZCIpOworICAgICAgICBmaW5pc2hUZXN0
KCk7CisgICAgfSkuY2F0Y2goKGVycm9yKSA9PiB7CisgICAgICAgIC8vIEZpcnN0IGNyZWF0aW9u
IHNob3VsZCBmYWlsIGFzIHRoZXJlIGlzIGFuIGFjdGl2ZSBoYW5kbGUuCisgICAgICAgIGNyZWF0
ZUVycm9yID0gZXJyb3I7CisgICAgICAgIGRlYnVnKCJhY2Nlc3NIYW5kbGUyIGNhbm5vdCBiZSBj
cmVhdGVkIik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiY3JlYXRlRXJyb3IudG9T
dHJpbmcoKSIsICJJbnZhbGlkU3RhdGVFcnJvcjogVGhlIG9iamVjdCBpcyBpbiBhbiBpbnZhbGlk
IHN0YXRlLiIpOworICAgICAgICBjbG9zZSgpOworICAgIH0pOworfQorCitmdW5jdGlvbiBjbG9z
ZSgpIHsKKyAgICBhY2Nlc3NIYW5kbGUxLmNsb3NlKCkudGhlbigocmVzdWx0KSA9PiB7CisgICAg
ICAgIGRlYnVnKCJhY2Nlc3NIYW5kbGUxIGlzIGNsb3NlZCIpOworICAgICAgICBjcmVhdGVTZWNv
bmRTeW5jQWNlc3NIYW5kbGUoZmlsZUhhbmRsZSk7CisgICAgfSkuY2F0Y2goKGVycm9yKSA9PiB7
CisgICAgICAgIGZpbmlzaFRlc3QoZXJyb3IpOworICAgIH0pOworfQorCitnZXREaXJlY3Rvcnko
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5j
LWFjY2Vzcy1oYW5kbGUtYmFzaWNzLXdvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLWJhc2ljcy13b3JrZXIt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3NGY1ZDcxNTU3MzA3ZTRiZDE0YzE0NmJhOTNhYmQ1
MmRiOWE0ZjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0
ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLWJhc2ljcy13b3JrZXItZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTggQEAKK1tXb3JrZXJdIFRoaXMgdGVzdCBjaGVja3MgYmFzaWMgZnVudGlvbmFs
aXRpZXMgb2YgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitTdGFydGluZyB3b3JrZXI6IHJlc291cmNlcy9zeW5jLWFjY2Vzcy1oYW5k
bGUtYmFzaWNzLmpzCitQQVNTIFtXb3JrZXJdIGZpbGVIYW5kbGUubmFtZSBpcyAic3luYy1hY2Nl
c3MtaGFuZGxlLnR4dCIKK1BBU1MgW1dvcmtlcl0gZmlsZUhhbmRsZS5raW5kIGlzICJmaWxlIgor
W1dvcmtlcl0gYWNjZXNzSGFuZGxlMSBpcyBjcmVhdGVkCitQQVNTIFtXb3JrZXJdIHNpemUgaXMg
MAorW1dvcmtlcl0gYWNjZXNzSGFuZGxlMiBjYW5ub3QgYmUgY3JlYXRlZAorUEFTUyBbV29ya2Vy
XSBjcmVhdGVFcnJvci50b1N0cmluZygpIGlzICJJbnZhbGlkU3RhdGVFcnJvcjogVGhlIG9iamVj
dCBpcyBpbiBhbiBpbnZhbGlkIHN0YXRlLiIKK1tXb3JrZXJdIGFjY2Vzc0hhbmRsZTEgaXMgY2xv
c2VkCitbV29ya2VyXSBhY2Nlc3NIYW5kbGUyIGlzIGNyZWF0ZWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLWJhc2ljcy13b3Jr
ZXIuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vz
cy1oYW5kbGUtYmFzaWNzLXdvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdmZWMzNmE1OTYwYjRhYWEy
MWEyZjgwYWQxMWNlZDRiN2VjZWQ5ZDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLWJhc2ljcy13b3JrZXIu
aHRtbApAQCAtMCwwICsxLDkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0
Pgord29ya2VyID0gc3RhcnRXb3JrZXIoJ3Jlc291cmNlcy9zeW5jLWFjY2Vzcy1oYW5kbGUtYmFz
aWNzLmpzJyk7PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQo=
</data>
<flag name="commit-queue"
          id="464083"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440230</attachid>
            <date>2021-10-05 10:20:36 -0700</date>
            <delta_ts>2021-10-05 10:37:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231185-20211005102035.patch</filename>
            <type>text/plain</type>
            <size>93550</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGE4NDgwMmU4NjAzYjY5ZDZiNGYwOWI2
NTQyNjY5ZTQzMTU3ZjQ1N2MuLjkzZWVhNWE0YWE5YWQ4NjQ1MzBkZTYyMTI2OTJkY2E0MWY1ZjBk
Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEtMTAtMDUgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzExODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzODQ3ODU5PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNl
cy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sOgorICAgICAgICAqIHd0Zi9GaWxlU3lz
dGVtLmg6CisgICAgICAgICogd3RmL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3BwOgorICAgICAgICAo
V1RGOjpGaWxlU3lzdGVtSW1wbDo6Zmx1c2hGaWxlKToKKyAgICAgICAgKiB3dGYvcG9zaXgvRmls
ZVN5c3RlbVBPU0lYLmNwcDoKKyAgICAgICAgKFdURjo6RmlsZVN5c3RlbUltcGw6OmZsdXNoRmls
ZSk6CisgICAgICAgICogd3RmL3dpbi9GaWxlU3lzdGVtV2luLmNwcDoKKyAgICAgICAgKFdURjo6
RmlsZVN5c3RlbUltcGw6OmZsdXNoRmlsZSk6CisKIDIwMjEtMTAtMDUgIERhdmlkIEtpbHplciAg
PGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBGb2xsb3ctdXAgIzI6IFdURjo6UmV0YWlu
UHRyPD4gYWxsb3dzIGFzc2lnbm1lbnQgb2YgdHdvIHBvaW50ZXIgdHlwZXMgdGhhdCBhcmUgbm90
IGFzc2lnbmFibGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzNDNiMjc2MjZjOGMyY2NiYTY2NzUwMGJhNzgxZmIy
ZGM2MmEwMjVjLi4yYjkwYmRlZTNhNTY5ODhkZDM5OTMxMmJjYjFjNjRiNjFkNWM3YjYyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNjAgQEAKKzIwMjEtMTAtMDUgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzExODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzODQ3ODU5PgorCisgICAgICAgIElt
cGxlbWVudCBiYXNpYyBzdXBwb3J0IGZvciBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSBhcyBw
cm9wb3NhbDoKKyAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL1dJQ0cvZmlsZS1zeXN0ZW0tYWNj
ZXNzL2Jsb2IvbWFpbi9BY2Nlc3NIYW5kbGUubWQKKworICAgICAgICBGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZSBjYW4gYmUgY3JlYXRlZCB2aWEgRmlsZVN5c3RlbUZpbGVIYW5kbGUsIGFuZCBp
dCBjb21tdWljYXRlcyB3aXRoIGJhY2tlbmQgdmlhIAorICAgICAgICBGaWxlU3lzdGVtRmlsZUhh
bmRsZS4KKworICAgICAgICBUZXN0OiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nl
c3MtaGFuZGxlLWJhc2ljcy13b3JrZXIuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy5tYWtlOgorICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpnZXRTaXplKToKKyAgICAgICAgKFdlYkNv
cmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjp0cnVuY2F0ZSk6CisgICAgICAgIChXZWJDb3JlOjpG
aWxlU3lzdGVtRmlsZUhhbmRsZTo6Zmx1c2gpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3Rl
bUZpbGVIYW5kbGU6OmNsb3NlKToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbUZpbGVIYW5kbGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaWRsOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OkZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlOjp+RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OnRydW5jYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpnZXRTaXplKToKKyAgICAgICAgKFdlYkNvcmU6
OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpmbHVzaCk6CisgICAgICAgIChXZWJDb3JlOjpG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y2xvc2UpOgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmRpZENsb3NlKToKKyAgICAgICAgKiBNb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaDogQWRkZWQuCisgICAg
ICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6c2Nv
cGVDbG9zZWQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpyZW1vdmVFbnRyeSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb246OmRpZENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjb21wbGV0ZUludGVn
ZXJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OmNvbXBsZXRlVm9pZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
ckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldFNp
emUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
Ojp0cnVuY2F0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OmZsdXNoKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbjo6Y2xvc2UpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uOjpkaWRSZW1vdmVFbnRyeSk6IERlbGV0ZWQuCisgICAgICAgICog
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bi5oOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5h
bWVzLmg6CisKIDIwMjEtMTAtMDUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5j
b20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI4MzMzNSk6IE1vbWVudHVtIHNjcm9sbGluZyBp
cyBubyBsb25nZXIgbG9ja2VkIHRvIGFuIGF4aXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZjg1ZGYzZjBhZTNiOWYw
YzYzYWE3YzkxM2U4MjYyNzJmYTVmYTNlMy4uMmE2NzliOGI2ZGJhMzVkOTI1ZWRjNWMwMmIyYTkx
YTQ5ZTMwODk1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MyBAQAorMjAyMS0xMC0wNSAgU2lodWkg
TGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzMTE4NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODM4NDc4NTk+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VycmVu
dGx5IHdlIG9ubHkgYWxsb3cgb25lIG9wZW4gYWNjZXNzIGhhbmRsZSBvbiBvbmUgZmlsZS4gU2Vj
b25kIGFjY2VzcyBoYW5kbGUgY2FuIGJlIGNyZWF0ZWQgYWZ0ZXIgdGhlIGZpcnN0CisgICAgICAg
IGlzIGNsb3NlZC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvci5oOgorICAgICAgICAoV2ViS2l0Ojpjb252ZXJ0VG9FeGNlcHRpb25Pcik6
CisgICAgICAgIChXZWJLaXQ6OmNvbnZlcnRUb0V4Y2VwdGlvbkNvZGUpOiBEZWxldGVkLgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Y3JlYXRlU3luY0Fj
Y2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpn
ZXRTaXplKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OnRydW5j
YXRlKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmZsdXNoKToK
KyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmNsb3NlKToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmg6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXI6OmNvbm5lY3Rp
b25DbG9zZWQpOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXI6OmFj
cXVpcmVMb2NrRm9yRmlsZSk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlTWFu
YWdlcjo6cmVsZWFzZUxvY2tGb3JGaWxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9y
YWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1N0b3JhZ2VNYW5hZ2VyOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpnZXRTaXplRm9yQWNjZXNzSGFuZGxlKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjp0cnVuY2F0ZUZvckFjY2Vzc0hh
bmRsZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Zmx1c2hGb3JB
Y2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmNs
b3NlQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdv
cmtTdG9yYWdlTWFuYWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0
d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
L21lc3NhZ2VzLnB5OgorICAgICAgICAodHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNs
YXJlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb246OmdldEZpbGVIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldERpcmVjdG9yeUhhbmRsZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6cmVtb3ZlRW50cnkpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnJlc29sdmUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0ZVN5
bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OmdldFNpemUpOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb246OnRydW5jYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpmbHVzaCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6Y2xvc2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlN0b3JhZ2VDb25uZWN0aW9uOjpmaWxlU3lzdGVtR2V0RGlyZWN0b3J5KToKKwog
MjAyMS0xMC0wNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFk
ZCBTUEkgdG8gbGF1bmNoIGEgc2VydmljZSBzZXJ2aWNlIHdvcmtlciBpbiBhIFdLV2ViVmlldyBh
bmQgZXhwb3NlIHNlcnZpY2Ugd29ya2VyIHRvIGluamVjdGVkIGJ1bmRsZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFs
LnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBl
cmltZW50YWwueWFtbAppbmRleCA1MjVlNjAzNTJmNThlZTRhNTZlYjQ4ODBjZDA1NDZkOWMwM2Q2
ZmFkLi5iMTEyNjQ3NjA0ZmRhOWRhZGY0NDY0OTQ5ZjIxZWVhNzk5ZjI1ZTVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50
YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5j
ZXNFeHBlcmltZW50YWwueWFtbApAQCAtMjYsNiArMjYsMTggQEAKICMgVGhleSBtdXN0IGluY2x1
ZGUgYSBodW1hblJlYWRhYmxlTmFtZSBhbmQgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uLiBUaGlz
IGlzCiAjICAgdGhlIHRleHQgZXhwb3NlZCB0byB0aGUgdXNlciBmcm9tIHRoZSBXZWJLaXQgY2xp
ZW50LgogCitBY2Nlc3NIYW5kbGVFbmFibGVkOgorICB0eXBlOiBib29sCisgIGh1bWFuUmVhZGFi
bGVOYW1lOiAiQWNjZXNzSGFuZGxlIEFQSSIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAi
RW5hYmxlIEFjY2Vzc0hhbmRsZSBBUEkiCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdh
Y3k6CisgICAgICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IGZh
bHNlCisgICAgV2ViQ29yZToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisKIEFjY2Vzc2liaWxpdHlP
YmplY3RNb2RlbEVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgaHVtYW5SZWFkYWJsZU5hbWU6ICJB
Y2Nlc3NpYmlsaXR5IE9iamVjdCBNb2RlbCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Zp
bGVTeXN0ZW0uaCBiL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uaAppbmRleCBjNDUwMWQxNGE3
NDJhYTIxZmE2ZGM3YTczZjgzMDllYzZhODdmNGQ1Li5iMTA3MzcwNjk4ZTFhZDFkYTc5NGE3ZTQ2
NmNjMDA3MTJhN2Q4NjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9GaWxlU3lzdGVtLmgK
KysrIGIvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5oCkBAIC0xNTQsNiArMTU0LDcgQEAgV1RG
X0VYUE9SVF9QUklWQVRFIHZvaWQgY2xvc2VGaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSYpOwogLy8g
UmV0dXJucyB0aGUgcmVzdWx0aW5nIG9mZnNldCBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGZp
bGUgaWYgc3VjY2Vzc2Z1bCwgLTEgb3RoZXJ3aXNlLgogV1RGX0VYUE9SVF9QUklWQVRFIGxvbmcg
bG9uZyBzZWVrRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUsIGxvbmcgbG9uZyBvZmZzZXQsIEZpbGVT
ZWVrT3JpZ2luKTsKIFdURl9FWFBPUlRfUFJJVkFURSBib29sIHRydW5jYXRlRmlsZShQbGF0Zm9y
bUZpbGVIYW5kbGUsIGxvbmcgbG9uZyBvZmZzZXQpOworV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wg
Zmx1c2hGaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSk7CiAvLyBSZXR1cm5zIG51bWJlciBvZiBieXRl
cyBhY3R1YWxseSByZWFkIGlmIHN1Y2Nlc3NmdWwsIC0xIG90aGVyd2lzZS4KIFdURl9FWFBPUlRf
UFJJVkFURSBpbnQgd3JpdGVUb0ZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlLCBjb25zdCB2b2lkKiBk
YXRhLCBpbnQgbGVuZ3RoKTsKIC8vIFJldHVybnMgbnVtYmVyIG9mIGJ5dGVzIGFjdHVhbGx5IHdy
aXR0ZW4gaWYgc3VjY2Vzc2Z1bCwgLTEgb3RoZXJ3aXNlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL0ZpbGVT
eXN0ZW1HbGliLmNwcAppbmRleCA1NDYyNDRjNzA0MTA4NGNiNGI0MmU5ZjBhYWViYThhMjYyOTAz
ZmQzLi5mODEyN2YwYmEwZjQ0ZTQ5ZWYyODU5ZTE1MTgwMDhjMWIzMDQ4NDEyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcApAQCAtMjEzLDYgKzIxMywxMSBAQCBib29sIHRy
dW5jYXRlRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlLCBsb25nIGxvbmcgb2Zmc2V0KQog
ICAgIHJldHVybiBnX3NlZWthYmxlX3RydW5jYXRlKEdfU0VFS0FCTEUoZ19pb19zdHJlYW1fZ2V0
X291dHB1dF9zdHJlYW0oR19JT19TVFJFQU0oaGFuZGxlKSkpLCBvZmZzZXQsIG51bGxwdHIsIG51
bGxwdHIpOwogfQogCitib29sIGZsdXNoRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlKQor
eworICAgIHJldHVybiBnX291dHB1dF9zdHJlYW1fZmx1c2goZ19pb19zdHJlYW1fZ2V0X291dHB1
dF9zdHJlYW0oR19JT19TVFJFQU0oaGFuZGxlKSksIG51bGxwdHIsIG51bGxwdHIpOworfQorCiBp
bnQgd3JpdGVUb0ZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSwgY29uc3Qgdm9pZCogZGF0
YSwgaW50IGxlbmd0aCkKIHsKICAgICBpZiAoIWxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9wb3NpeC9G
aWxlU3lzdGVtUE9TSVguY3BwCmluZGV4IGIxMzM4MjRlYzJhMTE1ZWE1MGM3YzM0ZTBmMWE1ZWNl
ODA0MDJkNGMuLjc5NTY3MGZkNmQ4MDI3OGRmNmMxNzBiMjE2MmM0OGI1MmU5Y2JiZWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHAKKysrIGIvU291
cmNlL1dURi93dGYvcG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNwcApAQCAtMTE4LDYgKzExOCwxMSBA
QCBib29sIHRydW5jYXRlRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlLCBsb25nIGxvbmcg
b2Zmc2V0KQogICAgIHJldHVybiAhZnRydW5jYXRlKGhhbmRsZSwgb2Zmc2V0KTsKIH0KIAorYm9v
bCBmbHVzaEZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSkKK3sKKyAgICByZXR1cm4gIWZz
eW5jKGhhbmRsZSk7Cit9CisKIGludCB3cml0ZVRvRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFu
ZGxlLCBjb25zdCB2b2lkKiBkYXRhLCBpbnQgbGVuZ3RoKQogewogICAgIGRvIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL3dpbi9GaWxlU3lzdGVtV2luLmNwcCBiL1NvdXJjZS9XVEYvd3Rm
L3dpbi9GaWxlU3lzdGVtV2luLmNwcAppbmRleCBmZmE2MjkzYzczZTg0ZWVlMGJjZTEyY2M0ZDBk
YTdjZGNhNjBiODkzLi4yYmM4ZjIwMTA1MWM3ZDg1YjE3YjQ0YWMyNzM4ZDJlZDAxZjJkOTRhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi93aW4vRmlsZVN5c3RlbVdpbi5jcHAKKysrIGIvU291
cmNlL1dURi93dGYvd2luL0ZpbGVTeXN0ZW1XaW4uY3BwCkBAIC0zMDMsNiArMzAzLDEyIEBAIGJv
b2wgdHJ1bmNhdGVGaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUsIGxvbmcgbG9uZyBvZmZz
ZXQpCiAgICAgcmV0dXJuIFNldEZpbGVJbmZvcm1hdGlvbkJ5SGFuZGxlKGhhbmRsZSwgRmlsZUVu
ZE9mRmlsZUluZm8sICZlb2ZJbmZvLCBzaXplb2YoRklMRV9FTkRfT0ZfRklMRV9JTkZPKSk7CiB9
CiAKK2Jvb2wgZmx1c2hGaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUpCit7CisgICAgLy8g
Tm90IGltcGxlbWVudGVkLgorICAgIHJldHVybiBmYWxzZTsKK30KKwogaW50IHdyaXRlVG9GaWxl
KFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUsIGNvbnN0IHZvaWQqIGRhdGEsIGludCBsZW5ndGgp
CiB7CiAgICAgaWYgKCFpc0hhbmRsZVZhbGlkKGhhbmRsZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IDMwMzk0NzU5NzFkNGZiN2Y2ZjliZDFhMDZiOGZmMjZjYzUwMTdjYmQuLmRmODFlYjZhNzFj
Y2M4NmNlMWJjOTljNjFhNWEzYmI2ZmJkMzQ0OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0y
OTcsNiArMjk3LDcgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5pZGwKICAgICBNb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaWRsCiAgICAgTW9kdWxl
cy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaWRsCisgICAgTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbAogICAgIE1vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9TdG9yYWdlTWFuYWdlcitGaWxlU3lzdGVtQWNjZXNzLmlkbAogCiAg
ICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5pZGwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IGMwYmU4NmE3MzU0NDIyZjFm
YmRhMGVhMGM2YWQzNDEzOTliZWM5MmUuLmUyZTg5NjE5MjNjMGM5OTZiM2ZkMDgxNGNjNTAyM2I5
MmY2MmY0ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0
LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNm
aWxlbGlzdApAQCAtMTI2LDYgKzEyNiw3IEBAICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvZmV0Y2gv
V2luZG93T3JXb3JrZXJHbG9iYWxTY29wZStGZXRjaC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmlkbAogJChQUk9K
RUNUX0RJUikvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmlk
bAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5k
bGUuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGUuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvU3RvcmFnZU1hbmFnZXIrRmlsZVN5c3RlbUFjY2Vzcy5pZGwKICQoUFJPSkVDVF9ESVIp
L01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9nYW1l
cGFkL0dhbWVwYWRCdXR0b24uaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
LW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDIxMTEyY2UxNjQ3ZGQ1ZDRjNmFmNjU5MThiZmIzNDJh
NGRjYmNlYmIuLmY0ZjQ4MjI4YmRjNDYyMzAxN2ZkNDQ5ZDEyNjQxNjQ4MGVlN2ZiYWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC05
MDcsNiArOTA3LDggQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNGaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTRmlsZVN5c3RlbUZpbGVIYW5kbGUuaAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNGaWxlU3lzdGVtSGFuZGxlLmNwcAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNGaWxlU3lzdGVt
SGFuZGxlLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRmlsbE1vZGUuY3BwCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0ZpbGxNb2RlLmgK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRm9jdXNFdmVu
dC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDkyZDNjNDcxOTYwYmNjNzJl
ODkyOTA2M2VhZjViNTdkOTc0M2JlNTQuLmJlOGFjMjcyNDk4ZGQyNGU2OGI2OWQ5YmQ0MjU3MDQ1
NWQ5OWNlNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UK
KysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTU1LDYgKzE1NSw3
IEBAIEpTX0JJTkRJTkdfSURMUyA6PSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5pZGwgXAogICAgICQoV2ViQ29yZSkv
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmlkbCBcCiAgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5pZGwg
XAorCSQoV2ViQ29yZSkvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
U3RvcmFnZU1hbmFnZXIrRmlsZVN5c3RlbUFjY2Vzcy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9k
dWxlcy9nYW1lcGFkL0dhbWVwYWQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvZ2FtZXBh
ZC9HYW1lcGFkQnV0dG9uLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCAzOTRjYjNiYjZlMWEz
MjcyNDk1MWIyMjY1N2VkOTU5OWZkMzc4ZjgyLi45YTU5YzMwYjk1MmQyMWU0NjY0NmZlNjE4YjVj
NzRhNjllNWFmMzdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTQyLDYgKzQyLDcgQEAgc2V0KFdl
YkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIE1vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmgKICAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaAogICAgIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9G
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAorICAgIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oCiAgICAgTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL1N0b3JhZ2VNYW5hZ2VyRmlsZVN5c3RlbUFjY2Vzcy5oCiAgICAgTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCiAgICAgTW9kdWxl
cy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbkNhbGxi
YWNrSWRlbnRpZmllci5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcAppbmRleCBiMjEy
NTQ3YjVmZTliOWJkMjU2N2ZiMWIwOTQ4MGJiZGQwZjE5ZjY3Li5hNjlhNzJjNmI2OGEyZDZjZDQ1
YzhmYjczNDRiYTQzYjU4NzMzMTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAK
QEAgLTI3LDcgKzI3LDkgQEAKICNpbmNsdWRlICJGaWxlU3lzdGVtRmlsZUhhbmRsZS5oIgogCiAj
aW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaCIKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5o
IgorI2luY2x1ZGUgIkpTRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaCIKICNpbmNsdWRlIDx3
dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00OSw1ICs1
MSw0MSBAQCB2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpnZXRGaWxlKERPTVByb21pc2VEZWZl
cnJlZDxJRExJbnRlcmZhY2U8RmlsZT4+JiYgcHJvbQogICAgIHByb21pc2UucmVqZWN0KEV4Y2Vw
dGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAiTm90IGltcGxlbWVudGVkIl9zIH0pOwogfQogCit2
b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKERPTVByb21p
c2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+PiYmIHBy
b21pc2UpCit7CisgICAgY29ubmVjdGlvbigpLmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoaWRlbnRp
ZmllcigpLCBbcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIHByb21pc2UgPSBXVEZNb3Zl
KHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmIChyZXN1bHQuaGFz
RXhjZXB0aW9uKCkpCisgICAgICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QocmVzdWx0LnJl
bGVhc2VFeGNlcHRpb24oKSk7CisKKyAgICAgICAgcHJvbWlzZS5zZXR0bGUoRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZShwcm90ZWN0ZWRUaGlzLmdldCgpLCByZXN1bHQucmV0dXJu
VmFsdWUoKSkpOworICAgIH0pOworfQorCit2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpnZXRT
aXplKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMVW5zaWduZWRMb25nTG9uZz4mJiBwcm9taXNl
KQoreworICAgIGNvbm5lY3Rpb24oKS5nZXRTaXplKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxl
SWRlbnRpZmllciwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0
YWJsZSB7CisgICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7CisgICAgfSk7
Cit9CisKK3ZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OnRydW5jYXRlKEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1bnNpZ25lZCBs
b25nIGxvbmcgc2l6ZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3sKKyAg
ICBjb25uZWN0aW9uKCkudHJ1bmNhdGUoaWRlbnRpZmllcigpLCBhY2Nlc3NIYW5kbGVJZGVudGlm
aWVyLCBzaXplLCBbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRh
YmxlIHsKKyAgICAgICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKKyAgICB9KTsK
K30KKwordm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Zmx1c2goRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIERPTVByb21pc2VEZWZl
cnJlZDx2b2lkPiYmIHByb21pc2UpCit7CisgICAgY29ubmVjdGlvbigpLmZsdXNoKGlkZW50aWZp
ZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2Up
XShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUo
cmVzdWx0KSk7CisgICAgfSk7Cit9CisKK3ZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNsb3Nl
KEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlm
aWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQoreworICAgIGNvbm5lY3Rpb24oKS5jbG9zZShpZGVudGlmaWVyKCksIGFj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCmluZGV4
IDI1MDA1YzIxMzM4YmU3ODZhOTlmMjBiOGZhYWRlM2MxMmE3YWRjZDUuLmFmY2VhMWY3MDEzNzkw
OGZlMWM3NDBlMWZmZWViMWRlNzgxNDQxNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5o
CkBAIC0yNiwxMCArMjYsMTMgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRmlsZVN5c3Rl
bUhhbmRsZS5oIgorI2luY2x1ZGUgIkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
ci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZpbGU7CitjbGFzcyBGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZTsKK3RlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25P
cjsKIAogY2xhc3MgRmlsZVN5c3RlbUZpbGVIYW5kbGUgZmluYWwgOiBwdWJsaWMgRmlsZVN5c3Rl
bUhhbmRsZSB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChGaWxlU3lzdGVtRmlsZUhhbmRs
ZSk7CkBAIC0zNyw2ICs0MCwxMiBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IFJlZjxGaWxlU3lzdGVtRmlsZUhhbmRsZT4gY3JlYXRlKFN0cmluZyYmLCBGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJik7CiAgICAg
dm9pZCBnZXRGaWxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZT4+JiYpOwog
CisgICAgdm9pZCBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJ
bnRlcmZhY2U8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+PiYmKTsKKyAgICB2b2lkIGdldFNp
emUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBET01Qcm9taXNlRGVmZXJy
ZWQ8SURMVW5zaWduZWRMb25nTG9uZz4mJik7CisgICAgdm9pZCB0cnVuY2F0ZShGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBET01Q
cm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CisgICAgdm9pZCBmbHVzaChGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKyAgICB2
b2lkIGNsb3NlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJik7CisKIHByaXZhdGU6CiAgICAg
RmlsZVN5c3RlbUZpbGVIYW5kbGUoU3RyaW5nJiYsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
LCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5k
bGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1GaWxlSGFuZGxlLmlkbAppbmRleCA5ZTZhYTg4NTZlZDk3YjZjYmE0NjM4NTA1YWZhYTFlNTVh
NmQ5NWY1Li5jMTM5MmY1NTE2NjgzNTc4YzRhNDgyZjFhNmQ5MDg4YTg0YzkxYWEwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZp
bGVIYW5kbGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5pZGwKQEAgLTIzLDExICsyMywxMyBAQAogICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKKy8vIGh0dHBzOi8vd2ljZy5naXRodWIu
aW8vZmlsZS1zeXN0ZW0tYWNjZXNzLyNhcGktZmlsZXN5c3RlbWhhbmRsZQorCiBbCiAgICAgRW5h
YmxlZEJ5U2V0dGluZz1GaWxlU3lzdGVtQWNjZXNzRW5hYmxlZCwKICAgICBFeHBvc2VkPShXaW5k
b3csV29ya2VyKSwKICAgICBTZWN1cmVDb250ZXh0CiBdIGludGVyZmFjZSBGaWxlU3lzdGVtRmls
ZUhhbmRsZSA6IEZpbGVTeXN0ZW1IYW5kbGUgewogICAgIFByb21pc2U8RmlsZT4gZ2V0RmlsZSgp
OwotICAgIC8vIEZJWE1FOiBhZGQgUHJvbWlzZTxGaWxlU3lzdGVtV3JpdGFibGVGaWxlU3RyZWFt
PiBjcmVhdGVXcml0YWJsZShvcHRpb25hbCBGaWxlU3lzdGVtQ3JlYXRlV3JpdGFibGVPcHRpb25z
IG9wdGlvbnMpOworICAgIFtFeHBvc2VkPVdvcmtlcl0gUHJvbWlzZTxGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZT4gY3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpOwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCBlNjA1YTY3ZDkyYWI0MzZmZDY0ODNlMzc4
YjZmNjM4YjRkODFhYTBkLi40YzBmM2IwMGZhMmRjZjg2Njg1M2FlYjYxNDBlYzY0YTM3MzVkYTc4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCkBAIC0yNiw2ICsy
Niw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLmgi
CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVh
ZFNhZmVSZWZDb3VudGVkLmg+CiAKQEAgLTM4LDE1ICszOSwyNCBAQCB0ZW1wbGF0ZTx0eXBlbmFt
ZT4gY2xhc3MgRXhjZXB0aW9uT3I7CiBjbGFzcyBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24g
OiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
PiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKCkg
eyB9CisKICAgICB1c2luZyBTYW1lRW50cnlDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoRXhjZXB0aW9uT3I8Ym9vbD4mJik+OwogICAgIHVzaW5nIEdldEhhbmRsZUNhbGxiYWNrID0g
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
Zmllcj4mJik+OwotICAgIHVzaW5nIFJlbW92ZUVudHJ5Q2FsbGJhY2sgPSBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPjsKICAgICB1c2luZyBSZXNvbHZlQ2FsbGJh
Y2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPFZlY3RvcjxTdHJpbmc+PiYm
KT47CisgICAgdXNpbmcgR2V0QWNjZXNzSGFuZGxlQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKEV4Y2VwdGlvbk9yPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcj4m
Jik+OworICAgIHVzaW5nIFZvaWRDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhj
ZXB0aW9uT3I8dm9pZD4mJik+OworICAgIHVzaW5nIEludGVnZXJDYWxsYmFjayA9IENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dWludDY0X3Q+JiYpPjsKKwogICAgIHZpcnR1YWwg
dm9pZCBpc1NhbWVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIsIFNhbWVFbnRyeUNhbGxiYWNrJiYpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgZ2V0RmlsZUhhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBHZXRIYW5kbGVDYWxsYmFjayYmKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIGdldERpcmVjdG9yeUhhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBHZXRI
YW5kbGVDYWxsYmFjayYmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92ZUVudHJ5KEZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVj
dXJzaXZlbHksIFJlbW92ZUVudHJ5Q2FsbGJhY2smJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBy
ZW1vdmVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1l
LCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBWb2lkQ2FsbGJhY2smJikgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCByZXNvbHZlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciwgUmVzb2x2ZUNhbGxiYWNrJiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgR2V0QWNj
ZXNzSGFuZGxlQ2FsbGJhY2smJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRTaXplKEZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIsIEludGVnZXJDYWxsYmFjayYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHRydW5jYXRlKEZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50
aWZpZXIsIHVpbnQ2NF90IHNpemUsIFZvaWRDYWxsYmFjayYmKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGZsdXNoKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIsIFZvaWRDYWxsYmFjayYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGNsb3NlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZUlkZW50aWZpZXIsIFZvaWRDYWxsYmFjayYmKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mYWQ0YjlhODRiODQ5ZDViY2U0N2MzNGEzZjBiNmQ2MWRlNzZkMmFiCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcApAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
LmgiCisKKyNpbmNsdWRlICJCdWZmZXJTb3VyY2UuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Pci5o
IgorI2luY2x1ZGUgIkZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgiCisjaW5jbHVkZSAiSlNET01Qcm9t
aXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitSZWY8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+IEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjcmVhdGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUmIHNvdXJj
ZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoc291cmNl
LCBpZGVudGlmaWVyKSk7Cit9CisKK0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtRmlsZUhhbmRsZSYgc291cmNlLCBGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICA6IG1fc291cmNl
KHNvdXJjZSkKKyAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQoreworfQorCitGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZTo6fkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKCkKK3sKKyAg
ICBpZiAoIW1faXNDbG9zZWQpCisgICAgICAgIG1fc291cmNlLT5jbG9zZShtX2lkZW50aWZpZXIs
IFtdKGF1dG8pIHsgfSk7Cit9CisKK3ZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OnRy
dW5jYXRlKHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4m
JiBwcm9taXNlKQoreworICAgIG1fc291cmNlLT50cnVuY2F0ZShtX2lkZW50aWZpZXIsIHNpemUs
IFdURk1vdmUocHJvbWlzZSkpOworfQorCit2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
OjpnZXRTaXplKERPTVByb21pc2VEZWZlcnJlZDxJRExVbnNpZ25lZExvbmdMb25nPiYmIHByb21p
c2UpCit7CisgICAgbV9zb3VyY2UtPmdldFNpemUobV9pZGVudGlmaWVyLCBXVEZNb3ZlKHByb21p
c2UpKTsKK30KKwordm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Zmx1c2goRE9NUHJv
bWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3sKKyAgICBtX3NvdXJjZS0+Zmx1c2gobV9p
ZGVudGlmaWVyLCBXVEZNb3ZlKHByb21pc2UpKTsKK30KKwordm9pZCBGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZTo6Y2xvc2UoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3sK
KyAgICBpZiAobV9pc0Nsb3NlZCkKKyAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2Vw
dGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOworCisgICAgbV9zb3VyY2UtPmNsb3NlKG1faWRl
bnRpZmllciwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBwcm9taXNlID0gV1RGTW92
ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgICAgICBpZiAod2Vha1RoaXMp
CisgICAgICAgICAgICB3ZWFrVGhpcy0+ZGlkQ2xvc2UoKTsKKworICAgICAgICBwcm9taXNlLnNl
dHRsZShXVEZNb3ZlKHJlc3VsdCkpOworICAgIH0pOworfQorCit2b2lkIEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlOjpkaWRDbG9zZSgpCit7CisgICAgbV9pc0Nsb3NlZCA9IHRydWU7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMjllNDE1N2I2NTQxYjkzZTZlYTVmZTAyMzdmMGNmMjE1ZDAzYzNi
ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIklETFR5cGVzLmgiCisjaW5jbHVkZSA8d3RmL1dl
YWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBGaWxlU3lzdGVtRmlsZUhh
bmRsZTsKK3RlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBET01Qcm9taXNlRGVmZXJyZWQ7CisKK2Ns
YXNzIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlIDogcHVibGljIFJlZkNvdW50ZWQ8RmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGU+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8RmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGU+IHsKK3B1YmxpYzoKKyAgICBzdHJ1Y3QgRmlsZXN5c3RlbVJlYWRXcml0
ZU9wdGlvbnMgeworICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgYXQ7CisgICAgfTsKKworICAg
IHN0YXRpYyBSZWY8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+IGNyZWF0ZShGaWxlU3lzdGVt
RmlsZUhhbmRsZSYsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcik7CisgICAg
fkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKCk7CisKKyAgICB2b2lkIHRydW5jYXRlKHVuc2ln
bmVkIGxvbmcgbG9uZyBzaXplLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CisgICAgdm9p
ZCBnZXRTaXplKERPTVByb21pc2VEZWZlcnJlZDxJRExVbnNpZ25lZExvbmdMb25nPiYmKTsKKyAg
ICB2b2lkIGZsdXNoKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKyAgICB2b2lkIGNsb3Nl
KERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKyAgICB2b2lkIGRpZENsb3NlKCk7CisKK3By
aXZhdGU6CisgICAgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUZpbGVIYW5k
bGUmLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpOworCisgICAgUmVmPEZp
bGVTeXN0ZW1GaWxlSGFuZGxlPiBtX3NvdXJjZTsKKyAgICBGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgIGJvb2wgbV9pc0Nsb3NlZCB7IGZhbHNl
IH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUu
aWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMTIwNjRhNmRmNjExYzQxMjFlMjVjNzEw
MmYwMzMwM2NlNDQ5NGFhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbApAQCAtMCww
ICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRCeVNldHRpbmc9QWNjZXNzSGFu
ZGxlRW5hYmxlZCwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAorICAgIEV4cG9zZWQ9
RGVkaWNhdGVkV29ya2VyLAorICAgIFNlY3VyZUNvbnRleHQKK10gaW50ZXJmYWNlIEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlIHsKKyAgICBQcm9taXNlPHVuZGVmaW5lZD4gdHJ1bmNhdGUoW0Vu
Zm9yY2VSYW5nZV0gdW5zaWduZWQgbG9uZyBsb25nIHNpemUpOworICAgIFByb21pc2U8dW5zaWdu
ZWQgbG9uZyBsb25nPiBnZXRTaXplKCk7CisgICAgUHJvbWlzZTx1bmRlZmluZWQ+IGZsdXNoKCk7
CisgICAgUHJvbWlzZTx1bmRlZmluZWQ+IGNsb3NlKCk7Cit9OworCitkaWN0aW9uYXJ5IEZpbGVz
eXN0ZW1SZWFkV3JpdGVPcHRpb25zIHsKKyAgICBbRW5mb3JjZVJhbmdlXSB1bnNpZ25lZCBsb25n
IGxvbmcgYXQ7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlSWRlbnRpZmllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMxMzUxYmYyZDk0ZTVmM2E3ZTYxYzY5OWNhYjgy
N2ExNzhiNjE3NWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLmgKQEAg
LTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3Rm
L09iamVjdElkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXJUeXBlPjsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24u
Y3BwCmluZGV4IDQ1ZWIzZWM5NWI3NjUxZTdjMTVlMzBhNjk5YzQ3NGI2NTUyZDQzY2QuLmZhN2Y2
NjkzNTcxNjBiNzkxZGMyNWExYTMyMDgzZGEyNjk4NTY2YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCkBAIC02NCw3ICs2NCw3IEBA
IHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpzY29wZUNsb3NlZCgpCiAg
ICAgZm9yIChhdXRvJiBjYWxsYmFjayA6IGdldEhhbmRsZUNhbGxiYWNrcy52YWx1ZXMoKSkKICAg
ICAgICAgY2FsbGJhY2soRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CiAKLSAgICBh
dXRvIHJlbW92ZUVudHJ5Q2FsbGJhY2tzID0gc3RkOjpleGNoYW5nZShtX3JlbW92ZUVudHJ5Q2Fs
bGJhY2tzLCB7IH0pOworICAgIGF1dG8gcmVtb3ZlRW50cnlDYWxsYmFja3MgPSBzdGQ6OmV4Y2hh
bmdlKG1fdm9pZENhbGxiYWNrcywgeyB9KTsKICAgICBmb3IgKGF1dG8mIGNhbGxiYWNrIDogcmVt
b3ZlRW50cnlDYWxsYmFja3MudmFsdWVzKCkpCiAgICAgICAgIGNhbGxiYWNrKEV4Y2VwdGlvbiB7
IEludmFsaWRTdGF0ZUVycm9yIH0pOwogCkBAIC0xNDcsMTkgKzE0NywxOSBAQCB2b2lkIFdvcmtl
ckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6ZGlkR2V0SGFuZGxlKENhbGxiYWNrSWRlbnRp
ZmllciBjYWxsYmFjawogICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKHJlc3VsdCkpOwogfQogCi12
b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6cmVtb3ZlRW50cnkoRmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29s
IGRlbGV0ZVJlY3Vyc2l2ZWx5LCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlJlbW92ZUVu
dHJ5Q2FsbGJhY2smJiBjYWxsYmFjaykKK3ZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpyZW1vdmVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHksIEZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6Vm9pZENhbGxiYWNrJiYgY2FsbGJhY2spCiB7CiAgICAgaWYgKCFt
X3Njb3BlKQogICAgICAgICByZXR1cm4gY2FsbGJhY2soRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRl
RXJyb3IgfSk7CiAKICAgICBhdXRvIGNhbGxiYWNrSWRlbnRpZmllciA9IENhbGxiYWNrSWRlbnRp
Zmllcjo6Z2VuZXJhdGVUaHJlYWRTYWZlKCk7Ci0gICAgbV9yZW1vdmVFbnRyeUNhbGxiYWNrcy5h
ZGQoY2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgbV92b2lkQ2Fs
bGJhY2tzLmFkZChjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUoY2FsbGJhY2spKTsKIAogICAg
IGNhbGxPbk1haW5UaHJlYWQoW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gUmVm
IHsgbV9zY29wZS0+dGhyZWFkKCkgfSwgbWFpblRocmVhZENvbm5lY3Rpb24gPSBtX21haW5UaHJl
YWRDb25uZWN0aW9uLCBpZGVudGlmaWVyLCBuYW1lID0gbmFtZS5pc29sYXRlZENvcHkoKSwgZGVs
ZXRlUmVjdXJzaXZlbHldKCkgbXV0YWJsZSB7CiAgICAgICAgIGF1dG8gbWFpblRocmVhZENhbGxi
YWNrID0gW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gV1RGTW92ZSh3b3JrZXJU
aHJlYWQpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgICAgICB3b3JrZXJUaHJlYWQt
PnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoW2NhbGxiYWNrSWRlbnRpZmllciwgcmVzdWx0ID0g
Y3Jvc3NUaHJlYWRDb3B5KHJlc3VsdCldIChhdXRvJiBzY29wZSkgbXV0YWJsZSB7CiAgICAgICAg
ICAgICAgICAgaWYgKGF1dG8gY29ubmVjdGlvbiA9IGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3Bl
PihzY29wZSkuZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKCkpCi0gICAgICAgICAgICAgICAg
ICAgIGNvbm5lY3Rpb24tPmRpZFJlbW92ZUVudHJ5KGNhbGxiYWNrSWRlbnRpZmllciwgV1RGTW92
ZShyZXN1bHQpKTsKKyAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+Y29tcGxldGVWb2lk
Q2FsbGJhY2soY2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3VsdCkpOwogICAgICAgICAg
ICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CiAgICAgICAgIH07CiAKQEAgLTE2
NywxMiArMTY3LDYgQEAgdm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnJl
bW92ZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGkKICAgICB9KTsKIH0KIAotdm9p
ZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmRpZFJlbW92ZUVudHJ5KENhbGxi
YWNrSWRlbnRpZmllciBjYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPHZvaWQ+JiYgcmVz
dWx0KQotewotICAgIGlmIChhdXRvIGNhbGxiYWNrID0gbV9yZW1vdmVFbnRyeUNhbGxiYWNrcy50
YWtlKGNhbGxiYWNrSWRlbnRpZmllcikpCi0gICAgICAgIGNhbGxiYWNrKFdURk1vdmUocmVzdWx0
KSk7Ci19Ci0KIHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpyZXNvbHZl
KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIEZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyIG90aGVySWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpS
ZXNvbHZlQ2FsbGJhY2smJiBjYWxsYmFjaykKIHsKICAgICBpZiAoIW1fc2NvcGUpCkBAIC0xOTks
NCArMTkzLDEyMiBAQCB2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6ZGlk
UmVzb2x2ZShDYWxsYmFja0lkZW50aWZpZXIgY2FsbGJhY2tJZAogICAgICAgICBjYWxsYmFjayhX
VEZNb3ZlKHJlc3VsdCkpOwogfQogCit2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbjo6ZGlkQ3JlYXRlU3luY0FjY2Vzc0hhbmRsZShDYWxsYmFja0lkZW50aWZpZXIgY2FsbGJh
Y2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50
aWZpZXI+JiYgcmVzdWx0KQoreworICAgIGlmIChhdXRvIGNhbGxiYWNrID0gbV9nZXRBY2Nlc3NI
YW5kbENhbGxiYWNrcy50YWtlKGNhbGxiYWNrSWRlbnRpZmllcikpCisgICAgICAgIGNhbGxiYWNr
KFdURk1vdmUocmVzdWx0KSk7Cit9CisKK3ZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpjb21wbGV0ZUludGVnZXJDYWxsYmFjayhDYWxsYmFja0lkZW50aWZpZXIgY2FsbGJh
Y2tJZGVudGlmaWVyLCBFeGNlcHRpb25Pcjx1aW50NjRfdD4mJiByZXN1bHQpCit7CisgICAgaWYg
KGF1dG8gY2FsbGJhY2sgPSBtX2ludGVnZXJDYWxsYmFja3MudGFrZShjYWxsYmFja0lkZW50aWZp
ZXIpKQorICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKHJlc3VsdCkpOworfQorCit2b2lkIFdvcmtl
ckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y29tcGxldGVWb2lkQ2FsbGJhY2soQ2FsbGJh
Y2tJZGVudGlmaWVyIGNhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8dm9pZD4mJiByZXN1
bHQpCit7CisgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX3ZvaWRDYWxsYmFja3MudGFrZShjYWxs
YmFja0lkZW50aWZpZXIpKQorICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKHJlc3VsdCkpOworfQor
Cit2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlU3luY0FjY2Vz
c0hhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb246OkdldEFjY2Vzc0hhbmRsZUNhbGxiYWNrJiYgY2FsbGJhY2spCit7
CisgICAgaWYgKCFtX3Njb3BlKQorICAgICAgICByZXR1cm4gY2FsbGJhY2soRXhjZXB0aW9uIHsg
SW52YWxpZFN0YXRlRXJyb3IgfSk7CisKKyAgICBhdXRvIGNhbGxiYWNrSWRlbnRpZmllciA9IENh
bGxiYWNrSWRlbnRpZmllcjo6Z2VuZXJhdGVUaHJlYWRTYWZlKCk7CisgICAgbV9nZXRBY2Nlc3NI
YW5kbENhbGxiYWNrcy5hZGQoY2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7
CisKKyAgICBjYWxsT25NYWluVGhyZWFkKFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVh
ZCA9IFJlZiB7IG1fc2NvcGUtPnRocmVhZCgpIH0sIG1haW5UaHJlYWRDb25uZWN0aW9uID0gbV9t
YWluVGhyZWFkQ29ubmVjdGlvbiwgaWRlbnRpZmllcl0oKSBtdXRhYmxlIHsKKyAgICAgICAgYXV0
byBtYWluVGhyZWFkQ2FsbGJhY2sgPSBbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQg
PSBXVEZNb3ZlKHdvcmtlclRocmVhZCldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAg
ICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbY2FsbGJhY2tJZGVu
dGlmaWVyLCByZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0KV0gKGF1dG8mIHNjb3BlKSBt
dXRhYmxlIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBjb25uZWN0aW9uID0gZG93bmNhc3Q8
V29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5maWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oKSkK
KyAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+ZGlkQ3JlYXRlU3luY0FjY2Vzc0hhbmRs
ZShjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUocmVzdWx0KSk7CisgICAgICAgICAgICB9LCBX
b3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKKyAgICAgICAgfTsKKworICAgICAgICBtYWlu
VGhyZWFkQ29ubmVjdGlvbi0+Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZShpZGVudGlmaWVyLCBXVEZN
b3ZlKG1haW5UaHJlYWRDYWxsYmFjaykpOworICAgIH0pOworfQorCit2b2lkIFdvcmtlckZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Z2V0U2l6ZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNz
SGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpJbnRlZ2VyQ2Fs
bGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBpZiAoIW1fc2NvcGUpCisgICAgICAgIHJldHVybiBj
YWxsYmFjayhFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKworICAgIGF1dG8gY2Fs
bGJhY2tJZGVudGlmaWVyID0gQ2FsbGJhY2tJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUo
KTsKKyAgICBtX2ludGVnZXJDYWxsYmFja3MuYWRkKGNhbGxiYWNrSWRlbnRpZmllciwgV1RGTW92
ZShjYWxsYmFjaykpOworCisgICAgY2FsbE9uTWFpblRocmVhZChbY2FsbGJhY2tJZGVudGlmaWVy
LCB3b3JrZXJUaHJlYWQgPSBSZWYgeyBtX3Njb3BlLT50aHJlYWQoKSB9LCBtYWluVGhyZWFkQ29u
bmVjdGlvbiA9IG1fbWFpblRocmVhZENvbm5lY3Rpb24sIGlkZW50aWZpZXIsIGFjY2Vzc0hhbmRs
ZUlkZW50aWZpZXJdKCkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8gbWFpblRocmVhZENhbGxiYWNr
ID0gW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gV1RGTW92ZSh3b3JrZXJUaHJl
YWQpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1
bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoW2NhbGxiYWNrSWRlbnRpZmllciwgcmVzdWx0ID0gY3Jv
c3NUaHJlYWRDb3B5KHJlc3VsdCldIChhdXRvJiBzY29wZSkgbXV0YWJsZSB7CisgICAgICAgICAg
ICAgICAgaWYgKGF1dG8gY29ubmVjdGlvbiA9IGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPihz
Y29wZSkuZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKCkpCisgICAgICAgICAgICAgICAgICAg
IGNvbm5lY3Rpb24tPmNvbXBsZXRlSW50ZWdlckNhbGxiYWNrKGNhbGxiYWNrSWRlbnRpZmllciwg
V1RGTW92ZShyZXN1bHQpKTsKKyAgICAgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRN
b2RlKCkpOworICAgICAgICB9OworCisgICAgICAgIG1haW5UaHJlYWRDb25uZWN0aW9uLT5nZXRT
aXplKGlkZW50aWZpZXIsIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdURk1vdmUobWFpblRocmVh
ZENhbGxiYWNrKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOjp0cnVuY2F0ZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVy
LCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRp
ZmllciwgdWludDY0X3Qgc2l6ZSwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2Fs
bGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBpZiAoIW1fc2NvcGUpCisgICAgICAgIHJldHVybiBj
YWxsYmFjayhFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKworICAgIGF1dG8gY2Fs
bGJhY2tJZGVudGlmaWVyID0gQ2FsbGJhY2tJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUo
KTsKKyAgICBtX3ZvaWRDYWxsYmFja3MuYWRkKGNhbGxiYWNrSWRlbnRpZmllciwgV1RGTW92ZShj
YWxsYmFjaykpOworCisgICAgY2FsbE9uTWFpblRocmVhZChbY2FsbGJhY2tJZGVudGlmaWVyLCB3
b3JrZXJUaHJlYWQgPSBSZWYgeyBtX3Njb3BlLT50aHJlYWQoKSB9LCBtYWluVGhyZWFkQ29ubmVj
dGlvbiA9IG1fbWFpblRocmVhZENvbm5lY3Rpb24sIGlkZW50aWZpZXIsIGFjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIsIHNpemVdKCkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8gbWFpblRocmVhZENhbGxi
YWNrID0gW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gV1RGTW92ZSh3b3JrZXJU
aHJlYWQpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgICAgICB3b3JrZXJUaHJlYWQt
PnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoW2NhbGxiYWNrSWRlbnRpZmllciwgcmVzdWx0ID0g
Y3Jvc3NUaHJlYWRDb3B5KHJlc3VsdCldIChhdXRvJiBzY29wZSkgbXV0YWJsZSB7CisgICAgICAg
ICAgICAgICAgaWYgKGF1dG8gY29ubmVjdGlvbiA9IGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3Bl
PihzY29wZSkuZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKCkpCisgICAgICAgICAgICAgICAg
ICAgIGNvbm5lY3Rpb24tPmNvbXBsZXRlVm9pZENhbGxiYWNrKGNhbGxiYWNrSWRlbnRpZmllciwg
V1RGTW92ZShyZXN1bHQpKTsKKyAgICAgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRN
b2RlKCkpOworICAgICAgICB9OworCisgICAgICAgIG1haW5UaHJlYWRDb25uZWN0aW9uLT50cnVu
Y2F0ZShpZGVudGlmaWVyLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBzaXplLCBXVEZNb3ZlKG1h
aW5UaHJlYWRDYWxsYmFjaykpOworICAgIH0pOworfQorCit2b2lkIFdvcmtlckZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6Zmx1c2goRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRp
ZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Vm9pZENhbGxiYWNrJiYgY2Fs
bGJhY2spCit7CisgICAgaWYgKCFtX3Njb3BlKQorICAgICAgICByZXR1cm4gY2FsbGJhY2soRXhj
ZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CisKKyAgICBhdXRvIGNhbGxiYWNrSWRlbnRp
ZmllciA9IENhbGxiYWNrSWRlbnRpZmllcjo6Z2VuZXJhdGVUaHJlYWRTYWZlKCk7CisgICAgbV92
b2lkQ2FsbGJhY2tzLmFkZChjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUoY2FsbGJhY2spKTsK
KworICAgIGNhbGxPbk1haW5UaHJlYWQoW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFk
ID0gUmVmIHsgbV9zY29wZS0+dGhyZWFkKCkgfSwgbWFpblRocmVhZENvbm5lY3Rpb24gPSBtX21h
aW5UaHJlYWRDb25uZWN0aW9uLCBpZGVudGlmaWVyLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyXSgp
IG11dGFibGUgeworICAgICAgICBhdXRvIG1haW5UaHJlYWRDYWxsYmFjayA9IFtjYWxsYmFja0lk
ZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKV0oYXV0byByZXN1
bHQpIG11dGFibGUgeworICAgICAgICAgICAgd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9zdFRh
c2tGb3JNb2RlKFtjYWxsYmFja0lkZW50aWZpZXIsIHJlc3VsdCA9IGNyb3NzVGhyZWFkQ29weShy
ZXN1bHQpXSAoYXV0byYgc2NvcGUpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGlmIChhdXRv
IGNvbm5lY3Rpb24gPSBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oc2NvcGUpLmZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbigpKQorICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLT5j
b21wbGV0ZVZvaWRDYWxsYmFjayhjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUocmVzdWx0KSk7
CisgICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKKyAgICAgICAg
fTsKKworICAgICAgICBtYWluVGhyZWFkQ29ubmVjdGlvbi0+Zmx1c2goaWRlbnRpZmllciwgYWNj
ZXNzSGFuZGxlSWRlbnRpZmllciwgV1RGTW92ZShtYWluVGhyZWFkQ2FsbGJhY2spKTsKKyAgICB9
KTsKK30KKwordm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNsb3NlKEZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIGlmICghbV9zY29w
ZSkKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9y
IH0pOworCisgICAgYXV0byBjYWxsYmFja0lkZW50aWZpZXIgPSBDYWxsYmFja0lkZW50aWZpZXI6
OmdlbmVyYXRlVGhyZWFkU2FmZSgpOworICAgIG1fdm9pZENhbGxiYWNrcy5hZGQoY2FsbGJhY2tJ
ZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisKKyAgICBjYWxsT25NYWluVGhyZWFkKFtj
YWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFJlZiB7IG1fc2NvcGUtPnRocmVhZCgp
IH0sIG1haW5UaHJlYWRDb25uZWN0aW9uID0gbV9tYWluVGhyZWFkQ29ubmVjdGlvbiwgaWRlbnRp
ZmllciwgYWNjZXNzSGFuZGxlSWRlbnRpZmllcl0oKSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byBt
YWluVGhyZWFkQ2FsbGJhY2sgPSBbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQgPSBX
VEZNb3ZlKHdvcmtlclRocmVhZCldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgICAg
IHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbY2FsbGJhY2tJZGVudGlm
aWVyLCByZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0KV0gKGF1dG8mIHNjb3BlKSBtdXRh
YmxlIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBjb25uZWN0aW9uID0gZG93bmNhc3Q8V29y
a2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5maWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oKSkKKyAg
ICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+Y29tcGxldGVWb2lkQ2FsbGJhY2soY2FsbGJh
Y2tJZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAgICAgfSwgV29ya2VyUnVu
TG9vcDo6ZGVmYXVsdE1vZGUoKSk7CisgICAgICAgIH07CisKKyAgICAgICAgbWFpblRocmVhZENv
bm5lY3Rpb24tPmNsb3NlKGlkZW50aWZpZXIsIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdURk1v
dmUobWFpblRocmVhZENhbGxiYWNrKSk7CisgICAgfSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24u
aAppbmRleCBlYzY5ZDE3NWEyZjc1OWYwNmIzZjFjNTQ3NDRkNzEwYzllNjFjM2FjLi45MGNiY2Jm
NjczYTU4NmYyNzQ0MmY5NjQwMzQ3YTkyNTI2NTBjZmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dv
cmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCkBAIC00Niw4ICs0NiwxMCBAQCBwdWJs
aWM6CiAgICAgdXNpbmcgQ2FsbGJhY2tJZGVudGlmaWVyID0gV29ya2VyRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uQ2FsbGJhY2tJZGVudGlmaWVyOwogICAgIHZvaWQgZGlkSXNTYW1lRW50cnko
Q2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25Pcjxib29sPiYmKTsKICAgICB2b2lkIGRpZEdl
dEhhbmRsZShDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPEZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyPiYmKTsKLSAgICB2b2lkIGRpZFJlbW92ZUVudHJ5KENhbGxiYWNrSWRlbnRpZmll
ciwgRXhjZXB0aW9uT3I8dm9pZD4mJik7CiAgICAgdm9pZCBkaWRSZXNvbHZlKENhbGxiYWNrSWRl
bnRpZmllciwgRXhjZXB0aW9uT3I8VmVjdG9yPFN0cmluZz4+JiYpOworICAgIHZvaWQgZGlkQ3Jl
YXRlU3luY0FjY2Vzc0hhbmRsZShDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcj4mJiByZXN1bHQpOworICAgIHZvaWQgY29t
cGxldGVWb2lkQ2FsbGJhY2soQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25Pcjx2b2lkPiYm
IHJlc3VsdCk7CisgICAgdm9pZCBjb21wbGV0ZUludGVnZXJDYWxsYmFjayhDYWxsYmFja0lkZW50
aWZpZXIsIEV4Y2VwdGlvbk9yPHVpbnQ2NF90PiYmIHJlc3VsdCk7CiAKIHByaXZhdGU6CiAgICAg
V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKFdvcmtlckdsb2JhbFNjb3BlJiwgUmVm
PEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJik7CkBAIC01NiwxNSArNTgsMjMgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGlzU2FtZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpT
YW1lRW50cnlDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIGdldEZpbGVIYW5kbGUoRmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5l
Y2Vzc2FyeSwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRIYW5kbGVDYWxsYmFjayYm
KSBmaW5hbDsKICAgICB2b2lkIGdldERpcmVjdG9yeUhhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhhbmRsZUNhbGxiYWNrJiYpIGZpbmFsOwotICAg
IHZvaWQgcmVtb3ZlRW50cnkoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uOjpSZW1vdmVFbnRyeUNhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgcmVtb3ZlRW50cnko
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxl
dGVSZWN1cnNpdmVseSwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2sm
JikgZmluYWw7CiAgICAgdm9pZCByZXNvbHZlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpS
ZXNvbHZlQ2FsbGJhY2smJikgZmluYWw7CiAKKyAgICB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5k
bGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bjo6R2V0QWNjZXNzSGFuZGxlQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBnZXRTaXplKEZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50
aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6SW50ZWdlckNhbGxiYWNrJiYpIGZp
bmFsOworICAgIHZvaWQgdHJ1bmNhdGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSwgRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBmbHVz
aChGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmKSBm
aW5hbDsKKyAgICB2b2lkIGNsb3NlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bjo6Vm9pZENhbGxiYWNrJiYpIGZpbmFsOworCiAgICAgV2Vha1B0cjxXb3JrZXJHbG9iYWxTY29w
ZT4gbV9zY29wZTsKICAgICBSZWZQdHI8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiBtX21h
aW5UaHJlYWRDb25uZWN0aW9uOwogICAgIEhhc2hNYXA8Q2FsbGJhY2tJZGVudGlmaWVyLCBGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlNhbWVFbnRyeUNhbGxiYWNrPiBtX3NhbWVFbnRyeUNh
bGxiYWNrczsKICAgICBIYXNoTWFwPENhbGxiYWNrSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOjpHZXRIYW5kbGVDYWxsYmFjaz4gbV9nZXRIYW5kbGVDYWxsYmFja3M7Ci0g
ICAgSGFzaE1hcDxDYWxsYmFja0lkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bjo6UmVtb3ZlRW50cnlDYWxsYmFjaz4gbV9yZW1vdmVFbnRyeUNhbGxiYWNrczsKICAgICBIYXNo
TWFwPENhbGxiYWNrSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpSZXNv
bHZlQ2FsbGJhY2s+IG1fcmVzb2x2ZUNhbGxiYWNrczsKKyAgICBIYXNoTWFwPENhbGxiYWNrSWRl
bnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRBY2Nlc3NIYW5kbGVDYWxs
YmFjaz4gbV9nZXRBY2Nlc3NIYW5kbENhbGxiYWNrczsKKyAgICBIYXNoTWFwPENhbGxiYWNrSWRl
bnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2s+IG1fdm9p
ZENhbGxiYWNrczsKKyAgICBIYXNoTWFwPENhbGxiYWNrSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpJbnRlZ2VyQ2FsbGJhY2s+IG1faW50ZWdlckNhbGxiYWNrczsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggMWVmZjZhZWIzOWJh
MDJhNzM1ZjIxNGMzNGZkNzBjMTAzM2U5M2YxMC4uOTM5NzgxZDAzMTQ5YTc5YzBlZTQ3ZGZiMmUw
OWI4MGU5MmVmZTA4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysr
IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTYxLDYgKzYxLDcgQEAgTW9kdWxlcy9m
ZXRjaC9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlRmV0Y2guY3BwCiBNb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5jcHAKIE1vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtSGFuZGxlLmNwcAorTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcAogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvTm90
aWZpZXIuY3BwCiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcApAQCAtMzA0Niw2
ICszMDQ3LDcgQEAgSlNGaWxlU3lzdGVtRW50cnlDYWxsYmFjay5jcHAKIEpTRmlsZVN5c3RlbUZp
bGVFbnRyeS5jcHAKIEpTRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCiBKU0ZpbGVTeXN0ZW1IYW5k
bGUuY3BwCitKU0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcAogSlNGaWxsTW9kZS5jcHAK
IEpTRm9jdXNFdmVudC5jcHAKIEpTRm9jdXNPcHRpb25zLmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDYxNGMzZDcwYzJjYjEz
ZGZjMWMyMGNiMjYwODUyNjcwZjRlZDdlNWEuLjUyNWJiYWIxZTAwODFlYzAzMmUyYWJkMjI1YjJi
NWNhMjFlZmQ5YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTI4MTAsNiArMjgxMCw3IEBACiAJCTkzMEFBQzlBMjUwRUI4NDkw
MDEzREE5RiAvKiBDU1NDb25kaXRpb25SdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5MzBBQUM5ODI1MEVCODE3MDAxM0RBOUYgLyogQ1NTQ29uZGl0
aW9uUnVsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTkzMEFBQzlGMjUwRUQ0MDkwMDEzREE5RiAvKiBKU0NTU0NvbmRpdGlvblJ1bGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMEFBQzlEMjUwRUQ0
MDkwMDEzREE5RiAvKiBKU0NTU0NvbmRpdGlvblJ1bGUuaCAqLzsgfTsKIAkJOTMwQUFDQTIyNTBF
RDQxMTAwMTNEQTlGIC8qIEpTQ1NTR3JvdXBpbmdSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzBBQUNBMDI1MEVENDExMDAxM0RBOUYgLyogSlND
U1NHcm91cGluZ1J1bGUuaCAqLzsgfTsKKwkJOTMwRTQ0ODYyNzBDMzcyMjAwREU3QUI3IC8qIEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwRTQ0ODQyNzBDMzcyMTAwREU3QUI3IC8qIEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzMTUzQkRBMTQxODFGN0EwMEZDRjVCRSAv
KiBtaXNzaW5nSW1hZ2VAMngucG5nIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MzE1M0JEOTE0MTgxRjdBMDBGQ0Y1QkUgLyogbWlzc2luZ0ltYWdlQDJ4
LnBuZyAqLzsgfTsKIAkJOTMxNTNCREMxNDE5NTlCQzAwRkNGNUJFIC8qIHRleHRBcmVhUmVzaXpl
Q29ybmVyLnBuZyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTMxNTNCREIxNDE5NTlCQjAwRkNGNUJFIC8qIHRleHRBcmVhUmVzaXplQ29ybmVyLnBuZyAq
LzsgfTsKIAkJOTMxNTNCRTIxNDE5NUE1NzAwRkNGNUJFIC8qIG1pc3NpbmdJbWFnZS5wbmcgaW4g
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMTUzQkUxMTQx
OTVBNTcwMEZDRjVCRSAvKiBtaXNzaW5nSW1hZ2UucG5nICovOyB9OwpAQCAtMjk2Myw2ICsyOTY0
LDcgQEAKIAkJOTNENkI3QTgyNTUxRDQxRjAwNThERDNBIC8qIER1bW15U3BlZWNoUmVjb2duaXRp
b25Qcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTNENkI3QTYyNTUxRDNFRDAwNThERDNBIC8qIER1bW15U3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTkzRDlENTNDMERBMjdFMTgwMDc3MjE2QyAvKiBSYW5nZUJvdW5kYXJ5UG9pbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDlENTNCMERBMjdFMTgw
MDc3MjE2QyAvKiBSYW5nZUJvdW5kYXJ5UG9pbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0UyNDFGRjBCMkI0RTQwMDBDNzMyQTEgLyogSFRN
TEZyYW1lT3duZXJFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5M0UyNDFGRTBCMkI0RTQwMDBDNzMyQTEgLyogSFRNTEZyYW1lT3duZXJFbGVt
ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
OTNFMjY5QTIyNzBBNUQ1RDAwMkM0RkYwIC8qIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0UyNjk5RjI3
MEE1RDVDMDAyQzRGRjAgLyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0UyQTMwNzEyM0U5REMw
MDA5RkUxMkEgLyogSFRNTFBhcnNlcklkaW9tcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTNFMkEzMDUxMjNFOURDMDAwOUZFMTJBIC8qIEhUTUxQYXJz
ZXJJZGlvbXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk5M0U1QjI2NTI0NTVFOTZGMDA1QzUyRDAgLyogQXR0cmlidXRlZFN0cmluZy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNFNUIyNjMyNDU1RTk2
RjAwNUM1MkQwIC8qIEF0dHJpYnV0ZWRTdHJpbmcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0YxOThFNTA4MjQ1RTU5MDAxRTlBQkMgLyogSFRN
TERvY3VtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTIzRDIzQzAyREU0Mzk2MDE4NjM1Q0EgLyogSFRNTERvY3VtZW50LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTExNjk1LDYgKzExNjk3LDcg
QEAKIAkJOTMwQUFDQTAyNTBFRDQxMTAwMTNEQTlGIC8qIEpTQ1NTR3JvdXBpbmdSdWxlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ1NTR3JvdXBpbmdSdWxlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMEFBQ0ExMjUwRUQ0MTEwMDEzREE5RiAvKiBKU0NT
U0dyb3VwaW5nUnVsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U0NTU0dyb3VwaW5nUnVsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMEM5
MERDMTlDRjk2NTMwMEQ2QzIxQSAvKiBMZWdhY3lJbmxpbmVJdGVyYXRvci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMZWdhY3lJbmxpbmVJdGVyYXRvci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzMEU0NDg0MjcwQzM3MjEwMERFN0FCNyAvKiBG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMTUzQkQ5MTQxODFGN0EwMEZDRjVCRSAvKiBt
aXNzaW5nSW1hZ2VAMngucG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRoID0gIm1pc3NpbmdJbWFnZUAyeC5wbmciOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzE1M0JEQjE0MTk1OUJCMDBGQ0Y1QkUgLyogdGV4
dEFyZWFSZXNpemVDb3JuZXIucG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRoID0gdGV4dEFyZWFSZXNpemVDb3JuZXIucG5n
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzE1M0JFMTE0MTk1QTU3MDBGQ0Y1QkUg
LyogbWlzc2luZ0ltYWdlLnBuZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IGltYWdlLnBuZzsgcGF0aCA9IG1pc3NpbmdJbWFnZS5wbmc7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTk5NCw2ICsxMTk5Nyw5IEBACiAJCTkzRTIyN0RGMEFG
NTg5QUQwMEQ0ODMyNCAvKiBTdWJyZXNvdXJjZUxvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBTdWJyZXNvdXJjZUxvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTkzRTI0MUZFMEIyQjRFNDAwMEM3MzJBMSAvKiBIVE1MRnJhbWVPd25l
ckVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTEZyYW1lT3du
ZXJFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRTI0MjVFMEIyQjUw
OTUwMEM3MzJBMSAvKiBIVE1MRnJhbWVPd25lckVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTEZyYW1lT3duZXJFbGVtZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNFMjY5OUQyNzBBNUQ1QjAwMkM0RkYwIC8qIEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRTI2
OTlGMjcwQTVENUMwMDJDNEZGMCAvKiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0UyNjlBMDI3MEE1RDVDMDAyQzRGRjAg
LyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5M0UyQTMwNDEyM0U5REMwMDA5RkUxMkEgLyogSFRNTFBhcnNl
cklkaW9tcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MUGFy
c2VySWRpb21zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNFMkEzMDUxMjNF
OURDMDAwOUZFMTJBIC8qIEhUTUxQYXJzZXJJZGlvbXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSFRNTFBhcnNlcklkaW9tcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5M0U1QjI1NDI0NTM2QjFFMDA1QzUyRDAgLyogVVJMRGVjb21wb3NpdGlvbi5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVUkxEZWNvbXBvc2l0aW9uLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIzNDM4LDYgKzIzNDQ0LDEwIEBACiAJCQkJ
OTMyQzlCRDkyNkRENjI2MDAwNTNCM0RCIC8qIEZpbGVTeXN0ZW1IYW5kbGUuaWRsICovLAogCQkJ
CTkzNTQyNDI3MjcwM0JDODgwMDVDQTcyQyAvKiBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllci5o
ICovLAogCQkJCTkzNTQyNDI5MjcwM0JDQUQwMDVDQTcyQyAvKiBGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24uaCAqLywKKwkJCQk5M0UyNjlBMDI3MEE1RDVDMDAyQzRGRjAgLyogRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGUuY3BwICovLAorCQkJCTkzRTI2OTlGMjcwQTVENUMwMDJDNEZGMCAv
KiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oICovLAorCQkJCTkzRTI2OTlEMjcwQTVENUIw
MDJDNEZGMCAvKiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5pZGwgKi8sCisJCQkJOTMwRTQ0
ODQyNzBDMzcyMTAwREU3QUI3IC8qIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
ci5oICovLAogCQkJCTkzNDQzRTdCMjZFOEE2QkMwMDU4NTM4RiAvKiBTdG9yYWdlTWFuYWdlcitG
aWxlU3lzdGVtQWNjZXNzLmlkbCAqLywKIAkJCQk5MzQ0M0U3RDI2RThBNkJDMDA1ODUzOEYgLyog
U3RvcmFnZU1hbmFnZXJGaWxlU3lzdGVtQWNjZXNzLmggKi8sCiAJCQkJOTMyMzNDODUyNzA1NEM3
ODAwQkJGNDFFIC8qIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAgKi8sCkBA
IC0zMjU2MCw2ICszMjU3MCw4IEBACiAJCQkJOTM0NDNFODgyNkU5OTVDNDAwNTg1MzhGIC8qIEZp
bGVTeXN0ZW1IYW5kbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNTQyNDJGMjcwM0NBNTEwMDVD
QTcyQyAvKiBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTM1NDI0MzAyNzAzQ0I4NjAwNUNBNzJDIC8qIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5o
IGluIEhlYWRlcnMgKi8sCisJCQkJOTNFMjY5QTIyNzBBNUQ1RDAwMkM0RkYwIC8qIEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzBFNDQ4NjI3MEMzNzIy
MDBERTdBQjcgLyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQzVFQjY5RjBFODFEQUVCMDBCMjU5NjUgLyogRmlsbExheWVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk3MTJCRTQ4MzFGRTg2NUREMDAyMDMxQ0MgLyogRmlsbE1vZGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTg0NUU3MkY4MEZEMjYxRUUwMEE4N0Q3OSAvKiBGaWx0ZXIuaCBp
biBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2Vi
Q29yZUJ1aWx0aW5OYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1
aWx0aW5OYW1lcy5oCmluZGV4IGU4MzVkZjdmZjBiMjIwZGViYTA1OGZkM2E4NGRmNWQyYzI1MTM5
NWMuLjJiYjlhOTM5YmZjYjZhOTc1ODg2MmY3ODg1NjZlNzJjMDRhMGU3MDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKQEAgLTEyNCw2
ICsxMjQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oRmlsZVN5c3RlbUZpbGVF
bnRyeSkgXAogICAgIG1hY3JvKEZpbGVTeXN0ZW1GaWxlSGFuZGxlKSBcCiAgICAgbWFjcm8oRmls
ZVN5c3RlbUhhbmRsZSkgXAorICAgIG1hY3JvKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKSBc
CiAgICAgbWFjcm8oR2FtZXBhZCkgXAogICAgIG1hY3JvKEdhbWVwYWRCdXR0b24pIFwKICAgICBt
YWNybyhHYW1lcGFkRXZlbnQpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUVycm9yLmggYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oCmluZGV4IDQ0M2M5
NTE0Y2Q5MzI5MTNkZGUzNGMyN2Y2YjViNTcyMDFhMGE0MWYuLjMxZjg0NzIxMzRmOGVmYTBkYjJj
ZTZjYzQ0N2ZmNzBjOTY0NmJlNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUVycm9yLmgKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaApAQCAtMjUs
NyArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgPFdlYkNvcmUvRXhjZXB0aW9u
Q29kZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRXhjZXB0aW9uT3IuaD4KICNpbmNsdWRlIDx3dGYv
RW51bVRyYWl0cy5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTM0LDI2ICszNCwzMiBAQCBl
bnVtIGNsYXNzIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IgOiB1aW50OF90IHsKICAgICBGaWxlTm90
Rm91bmQsCiAgICAgSW52YWxpZE5hbWUsCiAgICAgSW52YWxpZE1vZGlmaWNhdGlvbiwKKyAgICBJ
bnZhbGlkU3RhdGUsCiAgICAgVHlwZU1pc21hdGNoLAogICAgIFVua25vd24KIH07CiAKLWlubGlu
ZSBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGNvbnZlcnRUb0V4Y2VwdGlvbkNvZGUoRmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvciBlcnJvcikKK2lubGluZSBXZWJDb3JlOjpFeGNlcHRpb25Pcjx2b2lkPiBj
b252ZXJ0VG9FeGNlcHRpb25PcihzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+
IGVycm9yKQogewotICAgIHN3aXRjaCAoZXJyb3IpIHsKKyAgICBpZiAoIWVycm9yKQorICAgICAg
ICByZXR1cm4geyB9OworCisgICAgc3dpdGNoICgqZXJyb3IpIHsKICAgICBjYXNlIEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I6OkZpbGVOb3RGb3VuZDoKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4
Y2VwdGlvbkNvZGU6Ok5vdEZvdW5kRXJyb3I7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpFeGNl
cHRpb24geyBXZWJDb3JlOjpOb3RGb3VuZEVycm9yIH07CiAgICAgY2FzZSBGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yOjpJbnZhbGlkTW9kaWZpY2F0aW9uOgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6
RXhjZXB0aW9uQ29kZTo6SW52YWxpZE1vZGlmaWNhdGlvbkVycm9yOworICAgICAgICByZXR1cm4g
V2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6SW52YWxpZE1vZGlmaWNhdGlvbkVycm9yIH07
CiAgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpUeXBlTWlzbWF0Y2g6Ci0gICAgICAg
IHJldHVybiBXZWJDb3JlOjpFeGNlcHRpb25Db2RlOjpUeXBlRXJyb3I7CisgICAgICAgIHJldHVy
biBXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpUeXBlRXJyb3IgfTsKICAgICBjYXNlIEZp
bGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWROYW1lOgotICAgICAgICByZXR1cm4gV2ViQ29y
ZTo6RXhjZXB0aW9uQ29kZTo6VW5rbm93bkVycm9yOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6
RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAiTmFtZSBpcyBpbnZhbGlkIiB9Owor
ICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxpZFN0YXRlOgorICAgICAgICBy
ZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6SW52YWxpZFN0YXRlRXJyb3IgfTsK
ICAgICBjYXNlIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd246CiAgICAgICAgIGJyZWFr
OwogICAgIH0KIAotICAgIHJldHVybiBXZWJDb3JlOjpFeGNlcHRpb25Db2RlOjpVbmtub3duRXJy
b3I7CisgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJv
ciB9OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKQEAgLTY2LDYgKzcyLDcgQEAgdGVtcGxh
dGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHsK
ICAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpGaWxlTm90Rm91bmQsCiAg
ICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxpZE5hbWUsCiAgICAg
ICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxpZE1vZGlmaWNhdGlvbiwK
KyAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpJbnZhbGlkU3RhdGUsCiAg
ICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VHlwZU1pc21hdGNoLAogICAg
ICAgICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24KICAgICA+OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1T
dG9yYWdlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9G
aWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAKaW5kZXggMjJiYzNlZjRlZDI3OGExOWUyNDA2Yzc5
NDBjZmI2YzgzOGQ5MmRlYy4uMWYwM2UyN2NhNTVlYjRkMWFiMTFiY2Q3NTM1MzBjYmU2MTVmNTI2
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAK
ICNpbmNsdWRlICJGaWxlU3lzdGVtU3RvcmFnZUVycm9yLmgiCiAjaW5jbHVkZSAiRmlsZVN5c3Rl
bVN0b3JhZ2VNYW5hZ2VyLmgiCisjaW5jbHVkZSA8d3RmL1Njb3BlLmg+CiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCkBAIC0xMzksNCArMTQwLDg3IEBAIEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBG
aWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6cmVzb2x2CiAg
ICAgcmV0dXJuIHJlc3RQYXRoLnNwbGl0KHBhdGhTZXBhcmF0b3IpOwogfQogCitFeHBlY3RlZDxX
ZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpjcmVhdGVTeW5jQWNjZXNzSGFu
ZGxlKCkKK3sKKyAgICBpZiAoIW1fbWFuYWdlcikKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVj
dGVkKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24pOworCisgICAgYm9vbCBhY3F1aXJl
ZCA9IG1fbWFuYWdlci0+YWNxdWlyZUxvY2tGb3JGaWxlKG1fcGF0aCwgbV9pZGVudGlmaWVyKTsK
KyAgICBpZiAoIWFjcXVpcmVkKQorICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmlsZVN5
c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxpZFN0YXRlKTsKKworICAgIEFTU0VSVCghbV9hY3RpdmVT
eW5jQWNjZXNzSGFuZGxlKTsKKyAgICBtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgPSBXZWJDb3Jl
OjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXI6OmdlbmVyYXRlVGhyZWFkU2Fm
ZSgpOworICAgIHJldHVybiBtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUudmFsdWUoKTsKK30KKwor
RXhwZWN0ZWQ8dWludDY0X3QsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9y
YWdlSGFuZGxlOjpnZXRTaXplKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRl
bnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKQoreworICAgIGlmICghbV9tYW5hZ2VyKQor
ICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5r
bm93bik7CisKKyAgICBpZiAoIW1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSB8fCBtX2FjdGl2ZVN5
bmNBY2Nlc3NIYW5kbGUudmFsdWUoKSAhPSBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKQorICAgICAg
ICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bik7
CisKKyAgICBhdXRvIHNpemUgPSBGaWxlU3lzdGVtOjpmaWxlU2l6ZShtX3BhdGgpOworICAgIGlm
ICghc2l6ZSkKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I6OlVua25vd24pOworCisgICAgcmV0dXJuIHNpemUudmFsdWUoKTsKK30KKworc3RkOjpv
cHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6
dHJ1bmNhdGUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIsIHVpbnQ2NF90IHNpemUpCit7CisgICAgaWYgKCFtX21hbmFn
ZXIpCisgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOworCisg
ICAgaWYgKCFtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgfHwgbV9hY3RpdmVTeW5jQWNjZXNzSGFu
ZGxlLnZhbHVlKCkgIT0gYWNjZXNzSGFuZGxlSWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIEZp
bGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd247CisKKyAgICBhdXRvIGhhbmRsZSA9IEZpbGVT
eXN0ZW06Om9wZW5GaWxlKG1fcGF0aCwgRmlsZVN5c3RlbTo6RmlsZU9wZW5Nb2RlOjpSZWFkV3Jp
dGUpOworICAgIGF1dG8gY2xvc2VGaWxlU2NvcGUgPSBtYWtlU2NvcGVFeGl0KFsmXSB7CisgICAg
ICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZShoYW5kbGUpOworICAgIH0pOworCisgICAgYXV0byBy
ZXN1bHQgPSBGaWxlU3lzdGVtOjp0cnVuY2F0ZUZpbGUoaGFuZGxlLCBzaXplKTsKKyAgICBpZiAo
IXJlc3VsdCkKKyAgICAgICAgcmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd247
CisKKyAgICByZXR1cm4gc3RkOjpudWxsb3B0OworfQorCitzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpmbHVzaChXZWJDb3JlOjpG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmll
cikKK3sKKyAgICBpZiAoIW1fbWFuYWdlcikKKyAgICAgICAgcmV0dXJuIEZpbGVTeXN0ZW1TdG9y
YWdlRXJyb3I6OlVua25vd247CisKKyAgICBpZiAoIW1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSB8
fCBtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUudmFsdWUoKSAhPSBhY2Nlc3NIYW5kbGVJZGVudGlm
aWVyKQorICAgICAgICByZXR1cm4gRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bjsKKwor
ICAgIGF1dG8gaGFuZGxlID0gRmlsZVN5c3RlbTo6b3BlbkZpbGUobV9wYXRoLCBGaWxlU3lzdGVt
OjpGaWxlT3Blbk1vZGU6OlJlYWRXcml0ZSk7CisgICAgYXV0byBjbG9zZUZpbGVTY29wZSA9IG1h
a2VTY29wZUV4aXQoWyZdIHsKKyAgICAgICAgRmlsZVN5c3RlbTo6Y2xvc2VGaWxlKGhhbmRsZSk7
CisgICAgfSk7CisKKyAgICBhdXRvIHJlc3VsdCA9IEZpbGVTeXN0ZW06OmZsdXNoRmlsZShoYW5k
bGUpOworICAgIGlmICghcmVzdWx0KQorICAgICAgICByZXR1cm4gRmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcjo6VW5rbm93bjsKKworICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cit9CisKK3N0ZDo6b3B0
aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmNs
b3NlKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NI
YW5kbGVJZGVudGlmaWVyKQoreworICAgIGlmICghbV9tYW5hZ2VyKQorICAgICAgICByZXR1cm4g
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bjsKKworICAgIGlmICghbV9hY3RpdmVTeW5j
QWNjZXNzSGFuZGxlIHx8IG1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZS52YWx1ZSgpICE9IGFjY2Vz
c0hhbmRsZUlkZW50aWZpZXIpCisgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9y
OjpVbmtub3duOworCisgICAgbV9tYW5hZ2VyLT5yZWxlYXNlTG9ja0ZvckZpbGUobV9wYXRoLCBt
X2lkZW50aWZpZXIpOworICAgIG1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSA9IHN0ZDo6bnVsbG9w
dDsKKworICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3Jh
Z2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaAppbmRleCA4Nzk5MDkwN2Q5Yjg5YTUyM2Y3ZmYx
ZjU1MDcwYTU3MDY0MGFiM2IyLi5lNDdlZDNhMTZlZTk1YWIxZDE0OTkzOGQxOTdmNjQ2M2Q5NzQ5
MDE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmls
ZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaApAQCAtMjcsNiArMjcsNyBAQAogCiAj
aW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewpAQCAtNDksNiArNTAsMTIgQEAgcHVibGljOgogICAgIHN0ZDo6b3B0aW9uYWw8Rmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVtb3ZlRW50cnkoY29uc3QgU3RyaW5nJiBuYW1lLCBib29s
IGRlbGV0ZVJlY3Vyc2l2ZWx5KTsKICAgICBFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgRmlsZVN5
c3RlbVN0b3JhZ2VFcnJvcj4gcmVzb2x2ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
Zmllcik7CiAKKyAgICBFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGNyZWF0ZVN5bmNBY2Nlc3NIYW5k
bGUoKTsKKyAgICBFeHBlY3RlZDx1aW50NjRfdCwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gZ2V0
U2l6ZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpOworICAg
IHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gdHJ1bmNhdGUoV2ViQ29yZTo6
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXplKTsKKyAg
ICBzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGZsdXNoKFdlYkNvcmU6OkZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcik7CisgICAgc3RkOjpvcHRpb25hbDxG
aWxlU3lzdGVtU3RvcmFnZUVycm9yPiBjbG9zZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIpOworCiBwcml2YXRlOgogICAgIEV4cGVjdGVkPFdlYkNvcmU6OkZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXF1ZXN0
Q3JlYXRlSGFuZGxlKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQsIFR5cGUsIFN0cmluZyYmIG5h
bWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnkpOwogCkBAIC01Nyw2ICs2NCw3IEBAIHByaXZhdGU6
CiAgICAgVHlwZSBtX3R5cGU7CiAgICAgU3RyaW5nIG1fcGF0aDsKICAgICBTdHJpbmcgbV9uYW1l
OworICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyPiBtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGU7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFn
ZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5jcHAKaW5kZXggMWI3YTUxYTJm
Njg4NDE1YzM5NmI1YjQ4ZmRjMDVmOTk1ZmM2ZDNkZS4uOTQ4ZWViN2MxNzE1NWExMzczODBkN2Jm
NjgyMDQxMjg3NGE1YjdjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5jcHAKQEAg
LTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaCIKICNp
bmNsdWRlICJGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5LmgiCisjaW5jbHVkZSA8d3Rm
L1Njb3BlLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC04NywxNSArODgsMjEgQEAgdm9p
ZCBGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXI6OmNvbm5lY3Rpb25DbG9zZWQoSVBDOjpDb25uZWN0
aW9uOjpVbmlxdWVJRCBjb25uZWMKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsK
IAotICAgIGF1dG8gaGFuZGxlcyA9IG1faGFuZGxlc0J5Q29ubmVjdGlvbi5maW5kKGNvbm5lY3Rp
b24pOwotICAgIGlmIChoYW5kbGVzID09IG1faGFuZGxlc0J5Q29ubmVjdGlvbi5lbmQoKSkKKyAg
ICBhdXRvIGNvbm5lY3Rpb25IYW5kbGVzID0gbV9oYW5kbGVzQnlDb25uZWN0aW9uLmZpbmQoY29u
bmVjdGlvbik7CisgICAgaWYgKGNvbm5lY3Rpb25IYW5kbGVzID09IG1faGFuZGxlc0J5Q29ubmVj
dGlvbi5lbmQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZm9yIChhdXRvIGhhbmRsZUlkZW50
aWZpZXIgOiBoYW5kbGVzLT52YWx1ZSkgewotICAgICAgICBhdXRvIGhhbmRsZSA9IG1faGFuZGxl
cy50YWtlKGhhbmRsZUlkZW50aWZpZXIpOwotICAgICAgICBtX3JlZ2lzdHJ5LnVucmVnaXN0ZXJI
YW5kbGUoaGFuZGxlSWRlbnRpZmllcik7CisgICAgYXV0byBpZGVudGlmaWVycyA9IGNvbm5lY3Rp
b25IYW5kbGVzLT52YWx1ZTsKKyAgICBmb3IgKGF1dG8gaWRlbnRpZmllciA6IGlkZW50aWZpZXJz
KSB7CisgICAgICAgIGF1dG8gaGFuZGxlID0gbV9oYW5kbGVzLnRha2UoaWRlbnRpZmllcik7Cisg
ICAgICAgIG1fcmVnaXN0cnkudW5yZWdpc3RlckhhbmRsZShpZGVudGlmaWVyKTsKICAgICB9Ci0g
ICAgbV9oYW5kbGVzQnlDb25uZWN0aW9uLnJlbW92ZShoYW5kbGVzKTsKKworICAgIG1fbG9ja01h
cC5yZW1vdmVJZihbJmlkZW50aWZpZXJzXShhdXRvJiBlbnRyeSkgeworICAgICAgICByZXR1cm4g
aWRlbnRpZmllcnMuY29udGFpbnMoZW50cnkudmFsdWUpOworICAgIH0pOworCisgICAgbV9oYW5k
bGVzQnlDb25uZWN0aW9uLnJlbW92ZShjb25uZWN0aW9uSGFuZGxlcyk7CiB9CiAKIEV4cGVjdGVk
PFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yPiBGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXI6OmdldERpcmVjdG9yeShJUEM6OkNvbm5lY3Rp
b246OlVuaXF1ZUlEIGNvbm5lY3Rpb24pCkBAIC0xMDUsNCArMTEyLDIzIEBAIEV4cGVjdGVkPFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9y
PiBGaWxlU3lzdGVtCiAgICAgcmV0dXJuIGNyZWF0ZUhhbmRsZShjb25uZWN0aW9uLCBGaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZTo6VHlwZTo6RGlyZWN0b3J5LCBTdHJpbmcgeyBtX3BhdGggfSwgeyB9
LCB0cnVlKTsKIH0KIAorYm9vbCBGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXI6OmFjcXVpcmVMb2Nr
Rm9yRmlsZShjb25zdCBTdHJpbmcmIHBhdGgsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgaWYgKG1fbG9ja01hcC5jb250YWlucyhwYXRoKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgbV9sb2NrTWFwLmFkZChwYXRoLCBpZGVudGlm
aWVyKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBGaWxlU3lzdGVtU3RvcmFnZU1hbmFn
ZXI6OnJlbGVhc2VMb2NrRm9yRmlsZShjb25zdCBTdHJpbmcmIHBhdGgsIFdlYkNvcmU6OkZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgaWYgKGF1dG8gbG9ja2Vk
QnlJZGVudGlmaWVyID0gbV9sb2NrTWFwLmdldChwYXRoKTsgbG9ja2VkQnlJZGVudGlmaWVyID09
IGlkZW50aWZpZXIpIHsKKyAgICAgICAgbV9sb2NrTWFwLnJlbW92ZShwYXRoKTsKKyAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3Rv
cmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuaAppbmRleCA4YjQzOGIyZTkz
ZGY0YTg0NDdjM2I3NzQwYmM1NGM4N2ZjYTQzMTlmLi4xYWViYTlkYWY3OTY4YzY4ZDhmZThiM2Jl
N2I2NzU1MjgzZDc2MTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oCkBAIC00Mywx
MiArNDMsMTUgQEAgcHVibGljOgogICAgIGNvbnN0IFN0cmluZyYgZ2V0UGF0aChXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcik7CiAgICAgdm9pZCBjb25uZWN0aW9uQ2xvc2VkKElQ
Qzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQpOwogICAgIEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBnZXREaXJlY3Rvcnko
SVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCk7CisgICAgYm9vbCBhY3F1aXJlTG9ja0ZvckZpbGUo
Y29uc3QgU3RyaW5nJiBwYXRoLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcik7
CisgICAgYm9vbCByZWxlYXNlTG9ja0ZvckZpbGUoY29uc3QgU3RyaW5nJiBwYXRoLCBXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcik7CiAKIHByaXZhdGU6CiAgICAgU3RyaW5nIG1f
cGF0aDsKICAgICBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5JiBtX3JlZ2lzdHJ5Owog
ICAgIEhhc2hNYXA8SVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCwgSGFzaFNldDxXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcj4+IG1faGFuZGxlc0J5Q29ubmVjdGlvbjsKICAgICBI
YXNoTWFwPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9w
dHI8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU+PiBtX2hhbmRsZXM7CisgICAgSGFzaE1hcDxTdHJp
bmcsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyPiBtX2xvY2tNYXA7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAKaW5kZXgg
NjdhZWJhNTIwNmE2NjJjNjFkOWIwZTU2ZDU1OTUwOWNiMTJhNTAyNS4uMzY4NjE3NDI4MTgwZDc4
NDZiMmQ2MmYwNjBlOTllNWRjN2E3ZGQ2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAK
QEAgLTIyNiw1ICsyMjYsNjAgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OnJlc29sdmUo
V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmkKICAgICBjb21wbGV0
aW9uSGFuZGxlcihoYW5kbGUtPnJlc29sdmUodGFyZ2V0SWRlbnRpZmllcikpOwogfQogCit2b2lk
IE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
ciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAg
IEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgYXV0byBoYW5kbGUgPSBtX2ZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnktPmdldEhhbmRsZShpZGVudGlmaWVyKTsKKyAgICBp
ZiAoIWhhbmRsZSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKG1ha2VVbmV4cGVj
dGVkKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24pKTsKKworICAgIGNvbXBsZXRpb25I
YW5kbGVyKGhhbmRsZS0+Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpKTsKK30KKwordm9pZCBOZXR3
b3JrU3RvcmFnZU1hbmFnZXI6OmdldFNpemVGb3JBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoRXhwZWN0ZWQ8dWludDY0X3QsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsK
KworICAgIGF1dG8gaGFuZGxlID0gbV9maWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5LT5n
ZXRIYW5kbGUoaWRlbnRpZmllcik7CisgICAgaWYgKCFoYW5kbGUpCisgICAgICAgIHJldHVybiBj
b21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZChGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpV
bmtub3duKSk7CisKKyAgICBjb21wbGV0aW9uSGFuZGxlcihoYW5kbGUtPmdldFNpemUoYWNjZXNz
SGFuZGxlSWRlbnRpZmllcikpOworfQorCit2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6dHJ1
bmNhdGVGb3JBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIg
aWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVy
IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHVpbnQ2NF90IHNpemUsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYgY29tcGxldGlv
bkhhbmRsZXIpCit7CisgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CisKKyAgICBhdXRv
IGhhbmRsZSA9IG1fZmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeS0+Z2V0SGFuZGxlKGlk
ZW50aWZpZXIpOworICAgIGlmICghaGFuZGxlKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhh
bmRsZXIoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bik7CisKKyAgICBjb21wbGV0aW9u
SGFuZGxlcihoYW5kbGUtPnRydW5jYXRlKGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHNpemUpKTsK
K30KKwordm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmZsdXNoRm9yQWNjZXNzSGFuZGxlKFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVy
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNN
YWluKCkpOworCisgICAgYXV0byBoYW5kbGUgPSBtX2ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVn
aXN0cnktPmdldEhhbmRsZShpZGVudGlmaWVyKTsKKyAgICBpZiAoIWhhbmRsZSkKKyAgICAgICAg
cmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24p
OworCisgICAgY29tcGxldGlvbkhhbmRsZXIoaGFuZGxlLT5mbHVzaChhY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyKSk7Cit9CisKK3ZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpjbG9zZUFjY2Vzc0hh
bmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJD
b3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBBU1NFUlQoIVJ1bkxv
b3A6OmlzTWFpbigpKTsKKworICAgIGF1dG8gaGFuZGxlID0gbV9maWxlU3lzdGVtU3RvcmFnZUhh
bmRsZVJlZ2lzdHJ5LT5nZXRIYW5kbGUoaWRlbnRpZmllcik7CisgICAgaWYgKCFoYW5kbGUpCisg
ICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpV
bmtub3duKTsKKworICAgIGNvbXBsZXRpb25IYW5kbGVyKGhhbmRsZS0+Y2xvc2UoYWNjZXNzSGFu
ZGxlSWRlbnRpZmllcikpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFu
YWdlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9y
YWdlTWFuYWdlci5oCmluZGV4IDFiODEwZGY3OGQ3M2QyZmYwOWU4NGRlMmNjYjIyYmEwNjE4MDEx
YzguLmE4MTg4NTFmZjE0NTM4NjhhNzRkMTc2ZmI2Y2IyOGYyMWFiMzIzMWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFn
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0
b3JhZ2VNYW5hZ2VyLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJPcmlnaW5TdG9yYWdl
TWFuYWdlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ2xpZW50T3JpZ2luLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9GaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllci5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8cGFsL1Nl
c3Npb25JRC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC02OSw2ICs3MCwxMSBAQCBwcml2
YXRlOgogICAgIHZvaWQgZ2V0RGlyZWN0b3J5SGFuZGxlKElQQzo6Q29ubmVjdGlvbiYsIFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBTdHJpbmcmJiBuYW1lLCBib29sIGNyZWF0
ZUlmTmVjZXNzYXJ5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFdlYkNvcmU6OkZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwog
ICAgIHZvaWQgcmVtb3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAg
ICAgdm9pZCByZXNvbHZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJD
b3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChF
eHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKKyAg
ICB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+
JiYpOworICAgIHZvaWQgZ2V0U2l6ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPHVpbnQ2NF90LCBGaWxlU3lz
dGVtU3RvcmFnZUVycm9yPik+JiYpOworICAgIHZvaWQgdHJ1bmNhdGVGb3JBY2Nlc3NIYW5kbGUo
V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CisgICAg
dm9pZCBmbHVzaEZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4p
PiYmKTsKKyAgICB2b2lkIGNsb3NlQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFn
ZUVycm9yPik+JiYpOwogCiAgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgUmVm
PFdvcmtRdWV1ZT4gbV9xdWV1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3Nh
Z2VzLmluCmluZGV4IDYyZTc0MDNjYmI3MDBhZDk2YmJlYmUwZmViODIwNWM4MTYyMjRmZjcuLjRm
ZWEyNzY1ZmQ5MmE5ODA2MGNkMDQwMDYyYzVlOTQ1NWM4MTlmYzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdv
cmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMzIsNCArMzIsMTAgQEAKICAgICBHZXRE
aXJlY3RvcnlIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRp
ZmllciwgU3RyaW5nIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnkpIC0+IChFeHBlY3RlZDxX
ZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViS2l0OjpGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yPiByZXN1bHQpIEFzeW5jIFdhbnRzQ29ubmVjdGlvbgogICAgIFJlbW92ZUVudHJ5
KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0cmluZyBu
YW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5KSAtPiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OkZp
bGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKICAgICBSZXNvbHZlKFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyIHRhcmdldElkZW50aWZpZXIpIC0+IChFeHBlY3RlZDxWZWN0b3I8
U3RyaW5nPiwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCisK
KyAgICBDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyIGlkZW50aWZpZXIpIC0+IChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVz
dWx0KSBBc3luYworICAgIEdldFNpemVGb3JBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpIC0+IChFeHBlY3RlZDx1
aW50NjRfdCwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCisg
ICAgVHJ1bmNhdGVGb3JBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHVpbnQ2NF90IHNpemUpIC0+IChzdGQ6Om9w
dGlvbmFsPFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYworICAg
IEZsdXNoRm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
IGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
ciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OkZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKKyAgICBDbG9zZUFjY2Vzc0hhbmRsZShX
ZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmll
cikgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1
bHQpIEFzeW5jCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRl
eCBlZDk0YTNlZTU2NjhhMzQ4YmM3NmFkYmQ0MmI2NTAwNzFkMWI5NTFhLi41OTZiM2ZhYjY1ODY2
YmRlZjU4MTI4MGQ5MTE2MjBjMDc0ZjY3ZWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Nj
cmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJr
aXQvbWVzc2FnZXMucHkKQEAgLTI4Miw2ICsyODIsNyBAQCBkZWYgdHlwZXNfdGhhdF9jYW5ub3Rf
YmVfZm9yd2FyZF9kZWNsYXJlZCgpOgogICAgICAgICAnV2ViQ29yZTo6RHJhZ0FwcGxpY2F0aW9u
RmxhZ3MnLAogICAgICAgICAnV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyJywKICAgICAgICAgJ1dl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyJywKKyAgICAgICAgJ1dlYkNvcmU6OkZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRy
aWJ1dGVzJywKICAgICAgICAgJ1dlYkNvcmU6OkltYWdlRGVjb2RlcklkZW50aWZpZXInLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcAppbmRleCBiMDU0
YzkyMzhiZGQyZmNlYzgxMjliMDMwNmI1M2JiZmIxYzdkZjkzLi5mYjczYTg5NTJlMDljZmE1ZDA0
ZTMxZTk1ZTQzYzQ3YzM4NzBkNmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uLmNwcApAQCAtNjcsNyArNjcsNyBAQCB2b2lkIFdlYkZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6Z2V0RmlsZUhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbgogCiAgICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5l
dHdvcmtTdG9yYWdlTWFuYWdlcjo6R2V0RmlsZUhhbmRsZShpZGVudGlmaWVyLCBuYW1lLCBjcmVh
dGVJZk5lY2Vzc2FyeSksIFtuYW1lLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghcmVzdWx0
KQotICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlv
biB7IGNvbnZlcnRUb0V4Y2VwdGlvbkNvZGUocmVzdWx0LmVycm9yKCkpIH0pOworICAgICAgICAg
ICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGNvbnZlcnRUb0V4Y2VwdGlvbk9yKHJlc3VsdC5l
cnJvcigpKS5yZWxlYXNlRXhjZXB0aW9uKCkpOwogCiAgICAgICAgIGF1dG8gaWRlbnRpZmllciA9
IHJlc3VsdC52YWx1ZSgpOwogICAgICAgICBpZiAoIWlkZW50aWZpZXIuaXNWYWxpZCgpKQpAQCAt
ODQsNyArODQsNyBAQCB2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Z2V0RGly
ZWN0b3J5SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbAogCiAgICAgbV9jb25uZWN0aW9u
LT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6R2V0
RGlyZWN0b3J5SGFuZGxlKGlkZW50aWZpZXIsIG5hbWUsIGNyZWF0ZUlmTmVjZXNzYXJ5KSwgW25h
bWUsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8g
cmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFyZXN1bHQpCi0gICAgICAgICAgICByZXR1
cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgY29udmVydFRvRXhjZXB0
aW9uQ29kZShyZXN1bHQuZXJyb3IoKSkgfSk7CisgICAgICAgICAgICByZXR1cm4gY29tcGxldGlv
bkhhbmRsZXIoY29udmVydFRvRXhjZXB0aW9uT3IocmVzdWx0LmVycm9yKCkpLnJlbGVhc2VFeGNl
cHRpb24oKSk7CiAKICAgICAgICAgYXV0byBpZGVudGlmaWVyID0gcmVzdWx0LnZhbHVlKCk7CiAg
ICAgICAgIGlmICghaWRlbnRpZmllci5pc1ZhbGlkKCkpCkBAIC05NCwxNiArOTQsMTMgQEAgdm9p
ZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldERpcmVjdG9yeUhhbmRsZShXZWJD
b3JlOjpGaWxlU3lzdGVtSGFuZGwKICAgICB9KTsKIH0KIAotdm9pZCBXZWJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb246OnJlbW92ZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNp
dmVseSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpSZW1vdmVFbnRyeUNh
bGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbjo6cmVtb3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIg
aWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBX
ZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmIGNvbXBs
ZXRpb25IYW5kbGVyKQogewogICAgIGlmICghbV9jb25uZWN0aW9uKQogICAgICAgICByZXR1cm4g
Y29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVy
cm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0IiB9KTsKIAogICAgIG1fY29ubmVjdGlvbi0+c2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OlJlbW92ZUVudHJ5
KGlkZW50aWZpZXIsIG5hbWUsIGRlbGV0ZVJlY3Vyc2l2ZWx5KSwgW2NvbXBsZXRpb25IYW5kbGVy
ID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8gZXJyb3IpIG11dGFibGUgewotICAg
ICAgICBpZiAoZXJyb3IpCi0gICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2Vi
Q29yZTo6RXhjZXB0aW9uIHsgY29udmVydFRvRXhjZXB0aW9uQ29kZShlcnJvci52YWx1ZSgpKSB9
KTsKLQotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0pOworICAgICAgICByZXR1cm4gY29t
cGxldGlvbkhhbmRsZXIoY29udmVydFRvRXhjZXB0aW9uT3IoZXJyb3IpKTsKICAgICB9KTsKIH0K
IApAQCAtMTE0LDEwICsxMTEsNjYgQEAgdm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b246OnJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIKIAogICAgIG1f
Y29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1h
bmFnZXI6OlJlc29sdmUoaWRlbnRpZmllciwgb3RoZXJJZGVudGlmaWVyKSwgW2NvbXBsZXRpb25I
YW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8gcmVzdWx0KSBtdXRhYmxl
IHsKICAgICAgICAgaWYgKCFyZXN1bHQpCi0gICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhh
bmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgY29udmVydFRvRXhjZXB0aW9uQ29kZShyZXN1bHQu
ZXJyb3IoKSkgfSk7CisgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoY29udmVy
dFRvRXhjZXB0aW9uT3IocmVzdWx0LmVycm9yKCkpLnJlbGVhc2VFeGNlcHRpb24oKSk7CisKKyAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXN1bHQudmFsdWUoKSkpOworICAgIH0p
OworfQorCit2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlU3luY0Fj
Y2Vzc0hhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3Jl
OjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEFjY2Vzc0hhbmRsZUNhbGxiYWNrJiYg
Y29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAgICAgIHJl
dHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpVbmtu
b3duRXJyb3IsICJDb25uZWN0aW9uIGlzIGxvc3QiIH0pOworCisgICAgbV9jb25uZWN0aW9uLT5z
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Q3JlYXRl
U3luY0FjY2Vzc0hhbmRsZShpZGVudGlmaWVyKSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYg
KCFyZXN1bHQpCisgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoY29udmVydFRv
RXhjZXB0aW9uT3IocmVzdWx0LmVycm9yKCkpLnJlbGVhc2VFeGNlcHRpb24oKSk7CiAKICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXN1bHQudmFsdWUoKSkpOwogICAgIH0pOwog
fQogCit2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Z2V0U2l6ZShXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgSW50
ZWdlckNhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFtX2Nvbm5lY3Rp
b24pCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24g
eyBXZWJDb3JlOjpVbmtub3duRXJyb3IsICJDb25uZWN0aW9uIGlzIGxvc3QiIH0pOworCisgICAg
bV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdl
TWFuYWdlcjo6R2V0U2l6ZUZvckFjY2Vzc0hhbmRsZShpZGVudGlmaWVyLCBhY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyKSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cildKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCFyZXN1bHQpCisgICAgICAg
ICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoY29udmVydFRvRXhjZXB0aW9uT3IocmVzdWx0
LmVycm9yKCkpLnJlbGVhc2VFeGNlcHRpb24oKSk7CisKKyAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIocmVzdWx0LnZhbHVlKCkpOworICAgIH0pOworfQorCit2b2lkIFdlYkZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbjo6dHJ1bmNhdGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHVpbnQ2NF90IHNpemUsIFZvaWRDYWxsYmFjayYm
IGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmICghbV9jb25uZWN0aW9uKQorICAgICAgICBy
ZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5r
bm93bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0IiB9KTsKKworICAgIG1fY29ubmVjdGlvbi0+
c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OlRydW5j
YXRlRm9yQWNjZXNzSGFuZGxlKGlkZW50aWZpZXIsIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHNp
emUpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0
byBlcnJvcikgbXV0YWJsZSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGNvbnZlcnRUb0V4
Y2VwdGlvbk9yKGVycm9yKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOjpmbHVzaChXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIg
YWNjZXNzSGFuZGxlSWRlbnRpZmllciwgVm9pZENhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIp
Cit7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFu
ZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpVbmtub3duRXJyb3IsICJDb25uZWN0
aW9uIGlzIGxvc3QiIH0pOworCisgICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Rmx1c2hGb3JBY2Nlc3NIYW5kbGUoaWRl
bnRpZmllciwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciksIFtjb21wbGV0aW9uSGFuZGxlciA9IFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIGVycm9yKSBtdXRhYmxlIHsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoY29udmVydFRvRXhjZXB0aW9uT3IoZXJyb3IpKTsKKyAgICB9KTsK
K30KKwordm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNsb3NlKFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBWb2lk
Q2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoIW1fY29ubmVjdGlvbikK
KyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdl
YkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5lY3Rpb24gaXMgbG9zdCIgfSk7CisKKyAgICBtX2Nv
bm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5h
Z2VyOjpDbG9zZUFjY2Vzc0hhbmRsZShpZGVudGlmaWVyLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVy
KSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8g
ZXJyb3IpIG11dGFibGUgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjb252ZXJ0VG9FeGNl
cHRpb25PcihlcnJvcikpOworICAgIH0pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCBiNjAxYmU2
NDM1M2RhZmM3NzdjNmJjZTQyYjFlOWYyOTEzOTIzMGMyLi4wMjg0YzliZjM4ODJiMmNmNGMxYTY2
MzNhZmVmNDI3ZTZiYTc5OTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5oCkBAIC01MSw5ICs1MSwxNSBAQCBwcml2YXRlOgogICAgIHZvaWQgaXNTYW1l
RW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b246OlNhbWVFbnRyeUNhbGxiYWNrJiYpOwogICAgIHZvaWQgZ2V0RmlsZUhhbmRsZShXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNy
ZWF0ZUlmTmVjZXNzYXJ5LCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246Okdl
dEhhbmRsZUNhbGxiYWNrJiYpOwogICAgIHZvaWQgZ2V0RGlyZWN0b3J5SGFuZGxlKFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3Jl
YXRlSWZOZWNlc3NhcnksIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0
SGFuZGxlQ2FsbGJhY2smJik7Ci0gICAgdm9pZCByZW1vdmVFbnRyeShXZWJDb3JlOjpGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vy
c2l2ZWx5LCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlJlbW92ZUVudHJ5
Q2FsbGJhY2smJik7CisgICAgdm9pZCByZW1vdmVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5
LCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmKTsK
ICAgICB2b2lkIHJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb246OlJlc29sdmVDYWxsYmFjayYmKTsKIAorICAgIHZvaWQgY3JlYXRlU3lu
Y0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRBY2Nlc3NIYW5kbGVDYWxsYmFjayYmKSBmaW5hbDsK
KyAgICB2b2lkIGdldFNpemUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpJbnRlZ2VyQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCB0cnVuY2F0ZShGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyLCB1aW50NjRfdCBzaXplLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246
OlZvaWRDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIGZsdXNoKEZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6
OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Vm9pZENhbGxiYWNrJiYpIGZpbmFsOworICAg
IHZvaWQgY2xvc2UoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OjpWb2lkQ2FsbGJhY2smJikgZmluYWw7CisKICAgICBSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiBt
X2Nvbm5lY3Rpb247CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlN0b3JhZ2VDb25uZWN0aW9uLmNwcAppbmRleCAy
YWNiNWZhYWYzZjQ2ZDdmODRkYmJiYjg3MzMyZDMzNjU0OTAzNzZkLi5lMDU2OThmMzRhZjMxNDEw
MTJlM2FmZDI2ZjE2ZWViYjBhZjEyMjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3RvcmFnZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9yYWdlQ29ubmVjdGlvbi5j
cHAKQEAgLTU2LDcgKzU2LDcgQEAgdm9pZCBXZWJTdG9yYWdlQ29ubmVjdGlvbjo6ZmlsZVN5c3Rl
bUdldERpcmVjdG9yeShjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG8KICAgICBhdXRvJiBj
b25uZWN0aW9uID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uKCkuY29ubmVjdGlvbigpOwogICAgIGNvbm5lY3Rpb24uc2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OkZpbGVTeXN0ZW1HZXREaXJlY3Rv
cnkob3JpZ2luKSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cildKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFyZXN1bHQpCi0gICAgICAg
ICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgY29udmVy
dFRvRXhjZXB0aW9uQ29kZShyZXN1bHQuZXJyb3IoKSkgfSk7CisgICAgICAgICAgICByZXR1cm4g
Y29tcGxldGlvbkhhbmRsZXIoY29udmVydFRvRXhjZXB0aW9uT3IocmVzdWx0LmVycm9yKCkpLnJl
bGVhc2VFeGNlcHRpb24oKSk7CiAKICAgICAgICAgYXV0byBpZGVudGlmaWVyID0gcmVzdWx0LnZh
bHVlKCk7CiAgICAgICAgIGlmICghaWRlbnRpZmllci5pc1ZhbGlkKCkpCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYjRiNjc2
ODVmY2IwMWJiN2U1NWVlZDIwOTBhZjc1NGIzODkwNGNjMi4uNWQ4MDczZmU5YThmMGM2Y2RlNmQ1
NTc0NzA0NWNiZjNlNDc2YjUzZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTEwLTA1ICBT
aWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZv
ciBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMTg1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84Mzg0
Nzg1OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHN0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9yZXNvdXJjZXMvc3luYy1hY2Nlc3MtaGFuZGxlLWJh
c2ljcy5qczogQWRkZWQuCisgICAgICAgIChmaW5pc2hUZXN0KToKKyAgICAgICAgKGdldERpcmVj
dG9yeSk6CisgICAgICAgICogc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhh
bmRsZS1iYXNpY3Mtd29ya2VyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFn
ZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1iYXNpY3Mtd29ya2VyLmh0bWw6
IEFkZGVkLgorCiAyMDIxLTEwLTA1ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyODMzMzUpOiBNb21lbnR1bSBzY3JvbGxpbmcg
aXMgbm8gbG9uZ2VyIGxvY2tlZCB0byBhbiBheGlzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxv
ZwppbmRleCA3YzRjZjdiNGE5ZTFhM2ZlZGU0YTFmMDU3MDczZmIwZWZlYzg1ZWU2Li4yNWExZjQ0
MjNmOWExMTkyNjQxMjcyODA2YzFiZDc5MjVlYmM3ODYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0xMC0wNSAgU2lodWkgTGl1ICA8c2lodWlf
bGl1QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMTE4NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODM4NDc4NTk+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvZmlsZS1zeXN0ZW0tYWNjZXNzL3NhbmRib3hlZF9GaWxlU3lzdGVtRmlsZUhhbmRsZS1zeW5j
LWFjY2Vzcy1oYW5kbGUtbG9jay5odHRwcy50ZW50YXRpdmUud29ya2VyLWV4cGVjdGVkLnR4dDoK
KwogMjAyMS0xMC0wNSAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgW2Nzcy1wb3NpdGlvbi1zdGlja3ldIHNjcm9sbEludG9WaWV3IHNob3VsZCBub3Qg
dGFrZSBpbnRvIGFjY291bnQgc3RpY2t5IHBvc2l0aW9uaW5nIG9mZnNldHMKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmlsZS1zeXN0ZW0t
YWNjZXNzL3NhbmRib3hlZF9GaWxlU3lzdGVtRmlsZUhhbmRsZS1zeW5jLWFjY2Vzcy1oYW5kbGUt
bG9jay5odHRwcy50ZW50YXRpdmUud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmlsZS1zeXN0ZW0tYWNjZXNzL3NhbmRib3hl
ZF9GaWxlU3lzdGVtRmlsZUhhbmRsZS1zeW5jLWFjY2Vzcy1oYW5kbGUtbG9jay5odHRwcy50ZW50
YXRpdmUud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCBiNDYyOGE3ZGYyMmRmZTg4YTdiMzcxMmZm
YjM2N2RmY2NlZWU4NzA0Li43ZGFkYzJkNGYwNmQ4NDRhMjEyZjY0MDRjMGQxYWI5ZjU2MzcwY2I5
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZpbGUtc3lzdGVtLWFjY2Vzcy9zYW5kYm94ZWRfRmlsZVN5c3RlbUZpbGVIYW5kbGUtc3luYy1h
Y2Nlc3MtaGFuZGxlLWxvY2suaHR0cHMudGVudGF0aXZlLndvcmtlci1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9maWxlLXN5c3Rl
bS1hY2Nlc3Mvc2FuZGJveGVkX0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLXN5bmMtYWNjZXNzLWhhbmRs
ZS1sb2NrLmh0dHBzLnRlbnRhdGl2ZS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBA
QAogCi1GQUlMIFRoZXJlIGNhbiBvbmx5IGJlIG9uZSBvcGVuIGFjY2VzcyBoYW5kbGUgYXQgYW55
IGdpdmVuIHRpbWUgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6
IG9iamVjdCAiVHlwZUVycm9yOiBmaWxlSGFuZGxlLmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUgaXMg
bm90IGEgZnVuY3Rpb24uIChJbiAnZmlsZUhhbmRsZS5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlKCkn
LCAnZmlsZUhhbmRsZS5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlJyBpcyB1bmRlZmluZWQpIgotRkFJ
TCBBbiBhY2Nlc3MgaGFuZGxlIGZyb20gb25lIGZpbGUgZG9lcyBub3QgaW50ZXJmZXJlIHdpdGgg
dGhlIGNyZWF0aW9uIG9mIGFuIGFjY2VzcyBoYW5kbGUgb24gYW5vdGhlciBmaWxlIHByb21pc2Vf
dGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjog
Zm9vRmlsZUhhbmRsZS5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlIGlzIG5vdCBhIGZ1bmN0aW9uLiAo
SW4gJ2Zvb0ZpbGVIYW5kbGUuY3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpJywgJ2Zvb0ZpbGVIYW5k
bGUuY3JlYXRlU3luY0FjY2Vzc0hhbmRsZScgaXMgdW5kZWZpbmVkKSIKK1BBU1MgVGhlcmUgY2Fu
IG9ubHkgYmUgb25lIG9wZW4gYWNjZXNzIGhhbmRsZSBhdCBhbnkgZ2l2ZW4gdGltZQorUEFTUyBB
biBhY2Nlc3MgaGFuZGxlIGZyb20gb25lIGZpbGUgZG9lcyBub3QgaW50ZXJmZXJlIHdpdGggdGhl
IGNyZWF0aW9uIG9mIGFuIGFjY2VzcyBoYW5kbGUgb24gYW5vdGhlciBmaWxlCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9yZXNvdXJjZXMvc3luYy1h
Y2Nlc3MtaGFuZGxlLWJhc2ljcy5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFj
Y2Vzcy9yZXNvdXJjZXMvc3luYy1hY2Nlc3MtaGFuZGxlLWJhc2ljcy5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
NjcxMjVhNDZkYzZiNmVjM2ZjZmVmMTM5NGE4NjA4Yzg2NTI4NzJjCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3Jlc291cmNlcy9zeW5jLWFj
Y2Vzcy1oYW5kbGUtYmFzaWNzLmpzCkBAIC0wLDAgKzEsODEgQEAKK2lmICh0aGlzLmltcG9ydFNj
cmlwdHMpIHsKKyAgICBpbXBvcnRTY3JpcHRzKCcuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5q
cycpOworfQorCitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNrcyBiYXNpYyBmdW50aW9uYWxp
dGllcyBvZiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS4iKTsKKwordmFyIHJvb3RIYW5kbGUs
IGZpbGVIYW5kbGUsIGFjY2Vzc0hhbmRsZTEsIGFjY2Vzc0hhbmRsZTIsIGNyZWF0ZUVycm9yOwor
CitmdW5jdGlvbiBmaW5pc2hUZXN0KGVycm9yKQoreworICAgIGlmIChlcnJvcikgeworICAgICAg
ICB0ZXN0RmFpbGVkKGVycm9yKTsKKyAgICB9CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK2Z1
bmN0aW9uIGdldERpcmVjdG9yeSgpIHsKKyAgICBuYXZpZ2F0b3Iuc3RvcmFnZS5nZXREaXJlY3Rv
cnkoKS50aGVuKChoYW5kbGUpID0+IHsKKyAgICAgICAgcm9vdEhhbmRsZSA9IGhhbmRsZTsKKyAg
ICAgICAgY3JlYXRlRmlsZUhhbmRsZShyb290SGFuZGxlKTsKKyAgICB9KS5jYXRjaCgoZXJyb3Ip
ID0+IHsKKyAgICAgICAgZmluaXNoVGVzdChlcnJvcik7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9u
IGNyZWF0ZUZpbGVIYW5kbGUoZnJvbUhhbmRsZSkgeworICAgIGZyb21IYW5kbGUuZ2V0RmlsZUhh
bmRsZSgic3luYy1hY2Nlc3MtaGFuZGxlLnR4dCIsIHsgImNyZWF0ZSIgOiB0cnVlIH0pLnRoZW4o
KGhhbmRsZSkgPT4geworICAgICAgICBmaWxlSGFuZGxlID0gaGFuZGxlOworICAgICAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoImZpbGVIYW5kbGUubmFtZSIsICJzeW5jLWFjY2Vzcy1oYW5kbGUu
dHh0Iik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZmlsZUhhbmRsZS5raW5kIiwg
ImZpbGUiKTsKKyAgICAgICAgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShmaWxlSGFuZGxlKTsKKyAg
ICB9KS5jYXRjaCgoZXJyb3IpID0+IHsKKyAgICAgICAgZmluaXNoVGVzdChlcnJvcik7CisgICAg
fSk7Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoZnJvbUhhbmRsZSkgewor
ICAgIGZyb21IYW5kbGUuY3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpLnRoZW4oKGhhbmRsZSkgPT4g
eworICAgICAgICBhY2Nlc3NIYW5kbGUxID0gaGFuZGxlOworICAgICAgICBkZWJ1ZygiYWNjZXNz
SGFuZGxlMSBpcyBjcmVhdGVkIik7CisgICAgICAgIGdldFNpemUoYWNjZXNzSGFuZGxlMSk7Cisg
ICAgfSkuY2F0Y2goKGVycm9yKSA9PiB7CisgICAgICAgIGZpbmlzaFRlc3QoZXJyb3IpOworICAg
IH0pOworfQorCitmdW5jdGlvbiBnZXRTaXplKGFjY2Vzc0hhbmRsZSkgeworICAgIGFjY2Vzc0hh
bmRsZS5nZXRTaXplKCkudGhlbigocmVzdWx0KSA9PiB7CisgICAgICAgIHNpemUgPSByZXN1bHQ7
CisgICAgICAgIHNob3VsZEJlKCJzaXplIiwgIjAiKTsKKyAgICAgICAgY3JlYXRlU2Vjb25kU3lu
Y0FjZXNzSGFuZGxlKGZpbGVIYW5kbGUpOworICAgIH0pLmNhdGNoKChlcnJvcikgPT4geworICAg
ICAgICBmaW5pc2hUZXN0KGVycm9yKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gY3JlYXRlU2Vj
b25kU3luY0FjZXNzSGFuZGxlKGZyb21IYW5kbGUpIHsKKyAgICBmcm9tSGFuZGxlLmNyZWF0ZVN5
bmNBY2Nlc3NIYW5kbGUoKS50aGVuKChoYW5kbGUpID0+IHsKKyAgICAgICAgYWNjZXNzSGFuZGxl
MiA9IGhhbmRsZTsKKyAgICAgICAgLy8gU2Vjb25kIGNyZWF0aW9uIHNob3VsZCBzdWNjZWVkLgor
ICAgICAgICBkZWJ1ZygiYWNjZXNzSGFuZGxlMiBpcyBjcmVhdGVkIik7CisgICAgICAgIGZpbmlz
aFRlc3QoKTsKKyAgICB9KS5jYXRjaCgoZXJyb3IpID0+IHsKKyAgICAgICAgLy8gRmlyc3QgY3Jl
YXRpb24gc2hvdWxkIGZhaWwgYXMgdGhlcmUgaXMgYW4gYWN0aXZlIGhhbmRsZS4KKyAgICAgICAg
Y3JlYXRlRXJyb3IgPSBlcnJvcjsKKyAgICAgICAgZGVidWcoImFjY2Vzc0hhbmRsZTIgY2Fubm90
IGJlIGNyZWF0ZWQiKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJjcmVhdGVFcnJv
ci50b1N0cmluZygpIiwgIkludmFsaWRTdGF0ZUVycm9yOiBUaGUgb2JqZWN0IGlzIGluIGFuIGlu
dmFsaWQgc3RhdGUuIik7CisgICAgICAgIGNsb3NlKCk7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9u
IGNsb3NlKCkgeworICAgIGFjY2Vzc0hhbmRsZTEuY2xvc2UoKS50aGVuKChyZXN1bHQpID0+IHsK
KyAgICAgICAgZGVidWcoImFjY2Vzc0hhbmRsZTEgaXMgY2xvc2VkIik7CisgICAgICAgIGNyZWF0
ZVNlY29uZFN5bmNBY2Vzc0hhbmRsZShmaWxlSGFuZGxlKTsKKyAgICB9KS5jYXRjaCgoZXJyb3Ip
ID0+IHsKKyAgICAgICAgZmluaXNoVGVzdChlcnJvcik7CisgICAgfSk7Cit9CisKK2dldERpcmVj
dG9yeSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNz
L3N5bmMtYWNjZXNzLWhhbmRsZS1iYXNpY3Mtd29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtYmFzaWNzLXdv
cmtlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDc0ZjVkNzE1NTczMDdlNGJkMTRjMTQ2YmE5
M2FiZDUyZGI5YTRmNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvZmls
ZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtYmFzaWNzLXdvcmtlci1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxOCBAQAorW1dvcmtlcl0gVGhpcyB0ZXN0IGNoZWNrcyBiYXNpYyBmdW50
aW9uYWxpdGllcyBvZiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1N0YXJ0aW5nIHdvcmtlcjogcmVzb3VyY2VzL3N5bmMtYWNjZXNz
LWhhbmRsZS1iYXNpY3MuanMKK1BBU1MgW1dvcmtlcl0gZmlsZUhhbmRsZS5uYW1lIGlzICJzeW5j
LWFjY2Vzcy1oYW5kbGUudHh0IgorUEFTUyBbV29ya2VyXSBmaWxlSGFuZGxlLmtpbmQgaXMgImZp
bGUiCitbV29ya2VyXSBhY2Nlc3NIYW5kbGUxIGlzIGNyZWF0ZWQKK1BBU1MgW1dvcmtlcl0gc2l6
ZSBpcyAwCitbV29ya2VyXSBhY2Nlc3NIYW5kbGUyIGNhbm5vdCBiZSBjcmVhdGVkCitQQVNTIFtX
b3JrZXJdIGNyZWF0ZUVycm9yLnRvU3RyaW5nKCkgaXMgIkludmFsaWRTdGF0ZUVycm9yOiBUaGUg
b2JqZWN0IGlzIGluIGFuIGludmFsaWQgc3RhdGUuIgorW1dvcmtlcl0gYWNjZXNzSGFuZGxlMSBp
cyBjbG9zZWQKK1tXb3JrZXJdIGFjY2Vzc0hhbmRsZTIgaXMgY3JlYXRlZAorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtYmFzaWNz
LXdvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMt
YWNjZXNzLWhhbmRsZS1iYXNpY3Mtd29ya2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2ZlYzM2YTU5NjBi
NGFhYTIxYTJmODBhZDExY2VkNGI3ZWNlZDlkNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtYmFzaWNzLXdv
cmtlci5odG1sCkBAIC0wLDAgKzEsOSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxz
Y3JpcHQ+Cit3b3JrZXIgPSBzdGFydFdvcmtlcigncmVzb3VyY2VzL3N5bmMtYWNjZXNzLWhhbmRs
ZS1iYXNpY3MuanMnKTs8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440233</attachid>
            <date>2021-10-05 10:37:42 -0700</date>
            <delta_ts>2021-10-05 12:51:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231185-20211005103741.patch</filename>
            <type>text/plain</type>
            <size>93619</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGE4NDgwMmU4NjAzYjY5ZDZiNGYwOWI2
NTQyNjY5ZTQzMTU3ZjQ1N2MuLjkzZWVhNWE0YWE5YWQ4NjQ1MzBkZTYyMTI2OTJkY2E0MWY1ZjBk
Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEtMTAtMDUgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzExODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzODQ3ODU5PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNl
cy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sOgorICAgICAgICAqIHd0Zi9GaWxlU3lz
dGVtLmg6CisgICAgICAgICogd3RmL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3BwOgorICAgICAgICAo
V1RGOjpGaWxlU3lzdGVtSW1wbDo6Zmx1c2hGaWxlKToKKyAgICAgICAgKiB3dGYvcG9zaXgvRmls
ZVN5c3RlbVBPU0lYLmNwcDoKKyAgICAgICAgKFdURjo6RmlsZVN5c3RlbUltcGw6OmZsdXNoRmls
ZSk6CisgICAgICAgICogd3RmL3dpbi9GaWxlU3lzdGVtV2luLmNwcDoKKyAgICAgICAgKFdURjo6
RmlsZVN5c3RlbUltcGw6OmZsdXNoRmlsZSk6CisKIDIwMjEtMTAtMDUgIERhdmlkIEtpbHplciAg
PGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBGb2xsb3ctdXAgIzI6IFdURjo6UmV0YWlu
UHRyPD4gYWxsb3dzIGFzc2lnbm1lbnQgb2YgdHdvIHBvaW50ZXIgdHlwZXMgdGhhdCBhcmUgbm90
IGFzc2lnbmFibGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzNDNiMjc2MjZjOGMyY2NiYTY2NzUwMGJhNzgxZmIy
ZGM2MmEwMjVjLi4yYjkwYmRlZTNhNTY5ODhkZDM5OTMxMmJjYjFjNjRiNjFkNWM3YjYyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNjAgQEAKKzIwMjEtMTAtMDUgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzExODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzODQ3ODU5PgorCisgICAgICAgIElt
cGxlbWVudCBiYXNpYyBzdXBwb3J0IGZvciBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSBhcyBw
cm9wb3NhbDoKKyAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL1dJQ0cvZmlsZS1zeXN0ZW0tYWNj
ZXNzL2Jsb2IvbWFpbi9BY2Nlc3NIYW5kbGUubWQKKworICAgICAgICBGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZSBjYW4gYmUgY3JlYXRlZCB2aWEgRmlsZVN5c3RlbUZpbGVIYW5kbGUsIGFuZCBp
dCBjb21tdWljYXRlcyB3aXRoIGJhY2tlbmQgdmlhIAorICAgICAgICBGaWxlU3lzdGVtRmlsZUhh
bmRsZS4KKworICAgICAgICBUZXN0OiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nl
c3MtaGFuZGxlLWJhc2ljcy13b3JrZXIuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy5tYWtlOgorICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpnZXRTaXplKToKKyAgICAgICAgKFdlYkNv
cmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjp0cnVuY2F0ZSk6CisgICAgICAgIChXZWJDb3JlOjpG
aWxlU3lzdGVtRmlsZUhhbmRsZTo6Zmx1c2gpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3Rl
bUZpbGVIYW5kbGU6OmNsb3NlKToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbUZpbGVIYW5kbGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaWRsOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OkZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlOjp+RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OnRydW5jYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpnZXRTaXplKToKKyAgICAgICAgKFdlYkNvcmU6
OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpmbHVzaCk6CisgICAgICAgIChXZWJDb3JlOjpG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y2xvc2UpOgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmRpZENsb3NlKToKKyAgICAgICAgKiBNb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaDogQWRkZWQuCisgICAg
ICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6c2Nv
cGVDbG9zZWQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpyZW1vdmVFbnRyeSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb246OmRpZENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjb21wbGV0ZUludGVn
ZXJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OmNvbXBsZXRlVm9pZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
ckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldFNp
emUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
Ojp0cnVuY2F0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OmZsdXNoKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbjo6Y2xvc2UpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uOjpkaWRSZW1vdmVFbnRyeSk6IERlbGV0ZWQuCisgICAgICAgICog
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bi5oOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5h
bWVzLmg6CisKIDIwMjEtMTAtMDUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5j
b20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI4MzMzNSk6IE1vbWVudHVtIHNjcm9sbGluZyBp
cyBubyBsb25nZXIgbG9ja2VkIHRvIGFuIGF4aXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZjg1ZGYzZjBhZTNiOWYw
YzYzYWE3YzkxM2U4MjYyNzJmYTVmYTNlMy4uMmE2NzliOGI2ZGJhMzVkOTI1ZWRjNWMwMmIyYTkx
YTQ5ZTMwODk1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MyBAQAorMjAyMS0xMC0wNSAgU2lodWkg
TGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzMTE4NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODM4NDc4NTk+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VycmVu
dGx5IHdlIG9ubHkgYWxsb3cgb25lIG9wZW4gYWNjZXNzIGhhbmRsZSBvbiBvbmUgZmlsZS4gU2Vj
b25kIGFjY2VzcyBoYW5kbGUgY2FuIGJlIGNyZWF0ZWQgYWZ0ZXIgdGhlIGZpcnN0CisgICAgICAg
IGlzIGNsb3NlZC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvci5oOgorICAgICAgICAoV2ViS2l0Ojpjb252ZXJ0VG9FeGNlcHRpb25Pcik6
CisgICAgICAgIChXZWJLaXQ6OmNvbnZlcnRUb0V4Y2VwdGlvbkNvZGUpOiBEZWxldGVkLgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Y3JlYXRlU3luY0Fj
Y2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpn
ZXRTaXplKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OnRydW5j
YXRlKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmZsdXNoKToK
KyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmNsb3NlKToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmg6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXI6OmNvbm5lY3Rp
b25DbG9zZWQpOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXI6OmFj
cXVpcmVMb2NrRm9yRmlsZSk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlTWFu
YWdlcjo6cmVsZWFzZUxvY2tGb3JGaWxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9y
YWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1N0b3JhZ2VNYW5hZ2VyOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpnZXRTaXplRm9yQWNjZXNzSGFuZGxlKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjp0cnVuY2F0ZUZvckFjY2Vzc0hh
bmRsZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Zmx1c2hGb3JB
Y2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmNs
b3NlQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdv
cmtTdG9yYWdlTWFuYWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0
d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
L21lc3NhZ2VzLnB5OgorICAgICAgICAodHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNs
YXJlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb246OmdldEZpbGVIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldERpcmVjdG9yeUhhbmRsZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6cmVtb3ZlRW50cnkpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnJlc29sdmUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0ZVN5
bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OmdldFNpemUpOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb246OnRydW5jYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpmbHVzaCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6Y2xvc2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlN0b3JhZ2VDb25uZWN0aW9uOjpmaWxlU3lzdGVtR2V0RGlyZWN0b3J5KToKKwog
MjAyMS0xMC0wNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFk
ZCBTUEkgdG8gbGF1bmNoIGEgc2VydmljZSBzZXJ2aWNlIHdvcmtlciBpbiBhIFdLV2ViVmlldyBh
bmQgZXhwb3NlIHNlcnZpY2Ugd29ya2VyIHRvIGluamVjdGVkIGJ1bmRsZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFs
LnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBl
cmltZW50YWwueWFtbAppbmRleCA1MjVlNjAzNTJmNThlZTRhNTZlYjQ4ODBjZDA1NDZkOWMwM2Q2
ZmFkLi5iMTEyNjQ3NjA0ZmRhOWRhZGY0NDY0OTQ5ZjIxZWVhNzk5ZjI1ZTVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50
YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5j
ZXNFeHBlcmltZW50YWwueWFtbApAQCAtMjYsNiArMjYsMTggQEAKICMgVGhleSBtdXN0IGluY2x1
ZGUgYSBodW1hblJlYWRhYmxlTmFtZSBhbmQgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uLiBUaGlz
IGlzCiAjICAgdGhlIHRleHQgZXhwb3NlZCB0byB0aGUgdXNlciBmcm9tIHRoZSBXZWJLaXQgY2xp
ZW50LgogCitBY2Nlc3NIYW5kbGVFbmFibGVkOgorICB0eXBlOiBib29sCisgIGh1bWFuUmVhZGFi
bGVOYW1lOiAiQWNjZXNzSGFuZGxlIEFQSSIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAi
RW5hYmxlIEFjY2Vzc0hhbmRsZSBBUEkiCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdh
Y3k6CisgICAgICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IGZh
bHNlCisgICAgV2ViQ29yZToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisKIEFjY2Vzc2liaWxpdHlP
YmplY3RNb2RlbEVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgaHVtYW5SZWFkYWJsZU5hbWU6ICJB
Y2Nlc3NpYmlsaXR5IE9iamVjdCBNb2RlbCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Zp
bGVTeXN0ZW0uaCBiL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uaAppbmRleCBjNDUwMWQxNGE3
NDJhYTIxZmE2ZGM3YTczZjgzMDllYzZhODdmNGQ1Li5iMTA3MzcwNjk4ZTFhZDFkYTc5NGE3ZTQ2
NmNjMDA3MTJhN2Q4NjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9GaWxlU3lzdGVtLmgK
KysrIGIvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5oCkBAIC0xNTQsNiArMTU0LDcgQEAgV1RG
X0VYUE9SVF9QUklWQVRFIHZvaWQgY2xvc2VGaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSYpOwogLy8g
UmV0dXJucyB0aGUgcmVzdWx0aW5nIG9mZnNldCBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGZp
bGUgaWYgc3VjY2Vzc2Z1bCwgLTEgb3RoZXJ3aXNlLgogV1RGX0VYUE9SVF9QUklWQVRFIGxvbmcg
bG9uZyBzZWVrRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUsIGxvbmcgbG9uZyBvZmZzZXQsIEZpbGVT
ZWVrT3JpZ2luKTsKIFdURl9FWFBPUlRfUFJJVkFURSBib29sIHRydW5jYXRlRmlsZShQbGF0Zm9y
bUZpbGVIYW5kbGUsIGxvbmcgbG9uZyBvZmZzZXQpOworV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wg
Zmx1c2hGaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSk7CiAvLyBSZXR1cm5zIG51bWJlciBvZiBieXRl
cyBhY3R1YWxseSByZWFkIGlmIHN1Y2Nlc3NmdWwsIC0xIG90aGVyd2lzZS4KIFdURl9FWFBPUlRf
UFJJVkFURSBpbnQgd3JpdGVUb0ZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlLCBjb25zdCB2b2lkKiBk
YXRhLCBpbnQgbGVuZ3RoKTsKIC8vIFJldHVybnMgbnVtYmVyIG9mIGJ5dGVzIGFjdHVhbGx5IHdy
aXR0ZW4gaWYgc3VjY2Vzc2Z1bCwgLTEgb3RoZXJ3aXNlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL0ZpbGVT
eXN0ZW1HbGliLmNwcAppbmRleCA1NDYyNDRjNzA0MTA4NGNiNGI0MmU5ZjBhYWViYThhMjYyOTAz
ZmQzLi5mODEyN2YwYmEwZjQ0ZTQ5ZWYyODU5ZTE1MTgwMDhjMWIzMDQ4NDEyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcApAQCAtMjEzLDYgKzIxMywxMSBAQCBib29sIHRy
dW5jYXRlRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlLCBsb25nIGxvbmcgb2Zmc2V0KQog
ICAgIHJldHVybiBnX3NlZWthYmxlX3RydW5jYXRlKEdfU0VFS0FCTEUoZ19pb19zdHJlYW1fZ2V0
X291dHB1dF9zdHJlYW0oR19JT19TVFJFQU0oaGFuZGxlKSkpLCBvZmZzZXQsIG51bGxwdHIsIG51
bGxwdHIpOwogfQogCitib29sIGZsdXNoRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlKQor
eworICAgIHJldHVybiBnX291dHB1dF9zdHJlYW1fZmx1c2goZ19pb19zdHJlYW1fZ2V0X291dHB1
dF9zdHJlYW0oR19JT19TVFJFQU0oaGFuZGxlKSksIG51bGxwdHIsIG51bGxwdHIpOworfQorCiBp
bnQgd3JpdGVUb0ZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSwgY29uc3Qgdm9pZCogZGF0
YSwgaW50IGxlbmd0aCkKIHsKICAgICBpZiAoIWxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9wb3NpeC9G
aWxlU3lzdGVtUE9TSVguY3BwCmluZGV4IGIxMzM4MjRlYzJhMTE1ZWE1MGM3YzM0ZTBmMWE1ZWNl
ODA0MDJkNGMuLjc5NTY3MGZkNmQ4MDI3OGRmNmMxNzBiMjE2MmM0OGI1MmU5Y2JiZWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHAKKysrIGIvU291
cmNlL1dURi93dGYvcG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNwcApAQCAtMTE4LDYgKzExOCwxMSBA
QCBib29sIHRydW5jYXRlRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlLCBsb25nIGxvbmcg
b2Zmc2V0KQogICAgIHJldHVybiAhZnRydW5jYXRlKGhhbmRsZSwgb2Zmc2V0KTsKIH0KIAorYm9v
bCBmbHVzaEZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSkKK3sKKyAgICByZXR1cm4gIWZz
eW5jKGhhbmRsZSk7Cit9CisKIGludCB3cml0ZVRvRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFu
ZGxlLCBjb25zdCB2b2lkKiBkYXRhLCBpbnQgbGVuZ3RoKQogewogICAgIGRvIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL3dpbi9GaWxlU3lzdGVtV2luLmNwcCBiL1NvdXJjZS9XVEYvd3Rm
L3dpbi9GaWxlU3lzdGVtV2luLmNwcAppbmRleCBmZmE2MjkzYzczZTg0ZWVlMGJjZTEyY2M0ZDBk
YTdjZGNhNjBiODkzLi4yYmM4ZjIwMTA1MWM3ZDg1YjE3YjQ0YWMyNzM4ZDJlZDAxZjJkOTRhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi93aW4vRmlsZVN5c3RlbVdpbi5jcHAKKysrIGIvU291
cmNlL1dURi93dGYvd2luL0ZpbGVTeXN0ZW1XaW4uY3BwCkBAIC0zMDMsNiArMzAzLDEyIEBAIGJv
b2wgdHJ1bmNhdGVGaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUsIGxvbmcgbG9uZyBvZmZz
ZXQpCiAgICAgcmV0dXJuIFNldEZpbGVJbmZvcm1hdGlvbkJ5SGFuZGxlKGhhbmRsZSwgRmlsZUVu
ZE9mRmlsZUluZm8sICZlb2ZJbmZvLCBzaXplb2YoRklMRV9FTkRfT0ZfRklMRV9JTkZPKSk7CiB9
CiAKK2Jvb2wgZmx1c2hGaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUpCit7CisgICAgLy8g
Tm90IGltcGxlbWVudGVkLgorICAgIHJldHVybiBmYWxzZTsKK30KKwogaW50IHdyaXRlVG9GaWxl
KFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUsIGNvbnN0IHZvaWQqIGRhdGEsIGludCBsZW5ndGgp
CiB7CiAgICAgaWYgKCFpc0hhbmRsZVZhbGlkKGhhbmRsZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IDMwMzk0NzU5NzFkNGZiN2Y2ZjliZDFhMDZiOGZmMjZjYzUwMTdjYmQuLmRmODFlYjZhNzFj
Y2M4NmNlMWJjOTljNjFhNWEzYmI2ZmJkMzQ0OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0y
OTcsNiArMjk3LDcgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5pZGwKICAgICBNb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaWRsCiAgICAgTW9kdWxl
cy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaWRsCisgICAgTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbAogICAgIE1vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9TdG9yYWdlTWFuYWdlcitGaWxlU3lzdGVtQWNjZXNzLmlkbAogCiAg
ICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5pZGwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IGMwYmU4NmE3MzU0NDIyZjFm
YmRhMGVhMGM2YWQzNDEzOTliZWM5MmUuLmUyZTg5NjE5MjNjMGM5OTZiM2ZkMDgxNGNjNTAyM2I5
MmY2MmY0ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0
LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNm
aWxlbGlzdApAQCAtMTI2LDYgKzEyNiw3IEBAICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvZmV0Y2gv
V2luZG93T3JXb3JrZXJHbG9iYWxTY29wZStGZXRjaC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmlkbAogJChQUk9K
RUNUX0RJUikvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmlk
bAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5k
bGUuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGUuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvU3RvcmFnZU1hbmFnZXIrRmlsZVN5c3RlbUFjY2Vzcy5pZGwKICQoUFJPSkVDVF9ESVIp
L01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9nYW1l
cGFkL0dhbWVwYWRCdXR0b24uaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
LW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDIxMTEyY2UxNjQ3ZGQ1ZDRjNmFmNjU5MThiZmIzNDJh
NGRjYmNlYmIuLmY0ZjQ4MjI4YmRjNDYyMzAxN2ZkNDQ5ZDEyNjQxNjQ4MGVlN2ZiYWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC05
MDcsNiArOTA3LDggQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNGaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTRmlsZVN5c3RlbUZpbGVIYW5kbGUuaAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNGaWxlU3lzdGVtSGFuZGxlLmNwcAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNGaWxlU3lzdGVt
SGFuZGxlLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRmlsbE1vZGUuY3BwCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0ZpbGxNb2RlLmgK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRm9jdXNFdmVu
dC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDkyZDNjNDcxOTYwYmNjNzJl
ODkyOTA2M2VhZjViNTdkOTc0M2JlNTQuLmJlOGFjMjcyNDk4ZGQyNGU2OGI2OWQ5YmQ0MjU3MDQ1
NWQ5OWNlNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UK
KysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTU1LDYgKzE1NSw3
IEBAIEpTX0JJTkRJTkdfSURMUyA6PSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5pZGwgXAogICAgICQoV2ViQ29yZSkv
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmlkbCBcCiAgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5pZGwg
XAorCSQoV2ViQ29yZSkvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
U3RvcmFnZU1hbmFnZXIrRmlsZVN5c3RlbUFjY2Vzcy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9k
dWxlcy9nYW1lcGFkL0dhbWVwYWQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvZ2FtZXBh
ZC9HYW1lcGFkQnV0dG9uLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCAzOTRjYjNiYjZlMWEz
MjcyNDk1MWIyMjY1N2VkOTU5OWZkMzc4ZjgyLi5mZjg3OGZiNWQzMjk4ZjUzZThiNzA2ZjhjN2E1
ODZkYTlmY2NhODgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTQyLDYgKzQyLDggQEAgc2V0KFdl
YkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIE1vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmgKICAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaAogICAgIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9G
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAorICAgIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oCisgICAgTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oCiAgICAgTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL1N0b3JhZ2VNYW5hZ2VyRmlsZVN5c3RlbUFjY2Vzcy5oCiAgICAgTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5o
CiAgICAgTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbkNhbGxiYWNrSWRlbnRpZmllci5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNw
cAppbmRleCBiMjEyNTQ3YjVmZTliOWJkMjU2N2ZiMWIwOTQ4MGJiZGQwZjE5ZjY3Li5hNjlhNzJj
NmI2OGEyZDZjZDQ1YzhmYjczNDRiYTQzYjU4NzMzMTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmls
ZUhhbmRsZS5jcHAKQEAgLTI3LDcgKzI3LDkgQEAKICNpbmNsdWRlICJGaWxlU3lzdGVtRmlsZUhh
bmRsZS5oIgogCiAjaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgiCisjaW5j
bHVkZSAiRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaCIKICNpbmNsdWRlICJKU0RPTVByb21p
c2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgIkpTRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaCIK
ICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC00OSw1ICs1MSw0MSBAQCB2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpnZXRGaWxlKERP
TVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZT4+JiYgcHJvbQogICAgIHByb21pc2Uu
cmVqZWN0KEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAiTm90IGltcGxlbWVudGVkIl9z
IH0pOwogfQogCit2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGVTeW5jQWNjZXNzSGFu
ZGxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU+PiYmIHByb21pc2UpCit7CisgICAgY29ubmVjdGlvbigpLmNyZWF0ZVN5bmNBY2Nlc3NI
YW5kbGUoaWRlbnRpZmllcigpLCBbcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIHByb21p
c2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlm
IChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCisgICAgICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWpl
Y3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CisKKyAgICAgICAgcHJvbWlzZS5zZXR0bGUo
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZShwcm90ZWN0ZWRUaGlzLmdldCgpLCBy
ZXN1bHQucmV0dXJuVmFsdWUoKSkpOworICAgIH0pOworfQorCit2b2lkIEZpbGVTeXN0ZW1GaWxl
SGFuZGxlOjpnZXRTaXplKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nl
c3NIYW5kbGVJZGVudGlmaWVyLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMVW5zaWduZWRMb25nTG9u
Zz4mJiBwcm9taXNlKQoreworICAgIGNvbm5lY3Rpb24oKS5nZXRTaXplKGlkZW50aWZpZXIoKSwg
YWNjZXNzSGFuZGxlSWRlbnRpZmllciwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRv
IHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0
KSk7CisgICAgfSk7Cit9CisKK3ZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OnRydW5jYXRlKEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVy
LCB1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJv
bWlzZSkKK3sKKyAgICBjb25uZWN0aW9uKCkudHJ1bmNhdGUoaWRlbnRpZmllcigpLCBhY2Nlc3NI
YW5kbGVJZGVudGlmaWVyLCBzaXplLCBbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8g
cmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQp
KTsKKyAgICB9KTsKK30KKwordm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Zmx1c2goRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIERP
TVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCit7CisgICAgY29ubmVjdGlvbigpLmZs
dXNoKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgW3Byb21pc2UgPSBXVEZN
b3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIHByb21pc2Uuc2V0
dGxlKFdURk1vdmUocmVzdWx0KSk7CisgICAgfSk7Cit9CisKK3ZvaWQgRmlsZVN5c3RlbUZpbGVI
YW5kbGU6OmNsb3NlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NI
YW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+
JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGNvbm5lY3Rpb24oKS5jbG9zZShpZGVu
dGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhh
bmRsZS5oCmluZGV4IDI1MDA1YzIxMzM4YmU3ODZhOTlmMjBiOGZhYWRlM2MxMmE3YWRjZDUuLmFm
Y2VhMWY3MDEzNzkwOGZlMWM3NDBlMWZmZWViMWRlNzgxNDQxNTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
RmlsZUhhbmRsZS5oCkBAIC0yNiwxMCArMjYsMTMgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVk
ZSAiRmlsZVN5c3RlbUhhbmRsZS5oIgorI2luY2x1ZGUgIkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlSWRlbnRpZmllci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZpbGU7Citj
bGFzcyBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTsKK3RlbXBsYXRlPHR5cGVuYW1lPiBjbGFz
cyBFeGNlcHRpb25PcjsKIAogY2xhc3MgRmlsZVN5c3RlbUZpbGVIYW5kbGUgZmluYWwgOiBwdWJs
aWMgRmlsZVN5c3RlbUhhbmRsZSB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChGaWxlU3lz
dGVtRmlsZUhhbmRsZSk7CkBAIC0zNyw2ICs0MCwxMiBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIFJlZjxGaWxlU3lzdGVtRmlsZUhhbmRsZT4gY3JlYXRlKFN0cmluZyYmLCBG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bj4mJik7CiAgICAgdm9pZCBnZXRGaWxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8
RmlsZT4+JiYpOwogCisgICAgdm9pZCBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKERPTVByb21pc2VE
ZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+PiYmKTsKKyAg
ICB2b2lkIGdldFNpemUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBET01Q
cm9taXNlRGVmZXJyZWQ8SURMVW5zaWduZWRMb25nTG9uZz4mJik7CisgICAgdm9pZCB0cnVuY2F0
ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHVuc2lnbmVkIGxvbmcgbG9u
ZyBzaXplLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CisgICAgdm9pZCBmbHVzaChGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIERPTVByb21pc2VEZWZlcnJlZDx2b2lk
PiYmKTsKKyAgICB2b2lkIGNsb3NlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
ciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJik7CisKIHBy
aXZhdGU6CiAgICAgRmlsZVN5c3RlbUZpbGVIYW5kbGUoU3RyaW5nJiYsIEZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbUZpbGVIYW5kbGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmlkbAppbmRleCA5ZTZhYTg4NTZlZDk3YjZjYmE0NjM4
NTA1YWZhYTFlNTVhNmQ5NWY1Li5jMTM5MmY1NTE2NjgzNTc4YzRhNDgyZjFhNmQ5MDg4YTg0Yzkx
YWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbUZpbGVIYW5kbGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5pZGwKQEAgLTIzLDExICsyMywxMyBA
QAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKKy8vIGh0dHBzOi8v
d2ljZy5naXRodWIuaW8vZmlsZS1zeXN0ZW0tYWNjZXNzLyNhcGktZmlsZXN5c3RlbWhhbmRsZQor
CiBbCiAgICAgRW5hYmxlZEJ5U2V0dGluZz1GaWxlU3lzdGVtQWNjZXNzRW5hYmxlZCwKICAgICBF
eHBvc2VkPShXaW5kb3csV29ya2VyKSwKICAgICBTZWN1cmVDb250ZXh0CiBdIGludGVyZmFjZSBG
aWxlU3lzdGVtRmlsZUhhbmRsZSA6IEZpbGVTeXN0ZW1IYW5kbGUgewogICAgIFByb21pc2U8Rmls
ZT4gZ2V0RmlsZSgpOwotICAgIC8vIEZJWE1FOiBhZGQgUHJvbWlzZTxGaWxlU3lzdGVtV3JpdGFi
bGVGaWxlU3RyZWFtPiBjcmVhdGVXcml0YWJsZShvcHRpb25hbCBGaWxlU3lzdGVtQ3JlYXRlV3Jp
dGFibGVPcHRpb25zIG9wdGlvbnMpOworICAgIFtFeHBvc2VkPVdvcmtlcl0gUHJvbWlzZTxGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4gY3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCBlNjA1YTY3ZDkyYWI0
MzZmZDY0ODNlMzc4YjZmNjM4YjRkODFhYTBkLi40YzBmM2IwMGZhMmRjZjg2Njg1M2FlYjYxNDBl
YzY0YTM3MzVkYTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5o
CkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVk
ZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAKQEAgLTM4LDE1ICszOSwyNCBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZT4gY2xhc3MgRXhjZXB0aW9uT3I7CiBjbGFzcyBGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8RmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uPiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+RmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uKCkgeyB9CisKICAgICB1c2luZyBTYW1lRW50cnlDYWxsYmFjayA9IENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8Ym9vbD4mJik+OwogICAgIHVzaW5nIEdldEhhbmRs
ZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllcj4mJik+OwotICAgIHVzaW5nIFJlbW92ZUVudHJ5Q2FsbGJhY2sgPSBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPjsKICAgICB1c2luZyBS
ZXNvbHZlQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPFZlY3Rv
cjxTdHJpbmc+PiYmKT47CisgICAgdXNpbmcgR2V0QWNjZXNzSGFuZGxlQ2FsbGJhY2sgPSBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
SWRlbnRpZmllcj4mJik+OworICAgIHVzaW5nIFZvaWRDYWxsYmFjayA9IENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+OworICAgIHVzaW5nIEludGVnZXJDYWxsYmFj
ayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dWludDY0X3Q+JiYpPjsKKwog
ICAgIHZpcnR1YWwgdm9pZCBpc1NhbWVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwg
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFNhbWVFbnRyeUNhbGxiYWNrJiYpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgZ2V0RmlsZUhhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBHZXRIYW5kbGVDYWxs
YmFjayYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGdldERpcmVjdG9yeUhhbmRsZShGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVj
ZXNzYXJ5LCBHZXRIYW5kbGVDYWxsYmFjayYmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92
ZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJv
b2wgZGVsZXRlUmVjdXJzaXZlbHksIFJlbW92ZUVudHJ5Q2FsbGJhY2smJikgPSAwOworICAgIHZp
cnR1YWwgdm9pZCByZW1vdmVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBWb2lkQ2FsbGJhY2smJikgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCByZXNvbHZlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgUmVzb2x2ZUNhbGxiYWNrJiYpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciwgR2V0QWNjZXNzSGFuZGxlQ2FsbGJhY2smJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBn
ZXRTaXplKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZUlkZW50aWZpZXIsIEludGVnZXJDYWxsYmFjayYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IHRydW5jYXRlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIsIHVpbnQ2NF90IHNpemUsIFZvaWRDYWxsYmFjayYmKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIGZsdXNoKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFZvaWRDYWxsYmFjayYmKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGNsb3NlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFZvaWRDYWxsYmFjayYmKSA9IDA7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5mYWQ0YjlhODRiODQ5ZDViY2U0N2MzNGEzZjBiNmQ2MWRlNzZk
MmFiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcApAQCAtMCwwICsxLDg3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlLmgiCisKKyNpbmNsdWRlICJCdWZmZXJTb3VyY2UuaCIKKyNpbmNsdWRlICJF
eGNlcHRpb25Pci5oIgorI2luY2x1ZGUgIkZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgiCisjaW5jbHVk
ZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRs
ZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU+IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjcmVhdGUoRmlsZVN5c3RlbUZpbGVI
YW5kbGUmIHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50
aWZpZXIpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGUoc291cmNlLCBpZGVudGlmaWVyKSk7Cit9CisKK0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtRmlsZUhhbmRsZSYgc291
cmNlLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAg
ICA6IG1fc291cmNlKHNvdXJjZSkKKyAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQorewor
fQorCitGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6fkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlKCkKK3sKKyAgICBpZiAoIW1faXNDbG9zZWQpCisgICAgICAgIG1fc291cmNlLT5jbG9zZSht
X2lkZW50aWZpZXIsIFtdKGF1dG8pIHsgfSk7Cit9CisKK3ZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGU6OnRydW5jYXRlKHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBET01Qcm9taXNlRGVm
ZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQoreworICAgIG1fc291cmNlLT50cnVuY2F0ZShtX2lkZW50
aWZpZXIsIHNpemUsIFdURk1vdmUocHJvbWlzZSkpOworfQorCit2b2lkIEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlOjpnZXRTaXplKERPTVByb21pc2VEZWZlcnJlZDxJRExVbnNpZ25lZExvbmdM
b25nPiYmIHByb21pc2UpCit7CisgICAgbV9zb3VyY2UtPmdldFNpemUobV9pZGVudGlmaWVyLCBX
VEZNb3ZlKHByb21pc2UpKTsKK30KKwordm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6
Zmx1c2goRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3sKKyAgICBtX3NvdXJj
ZS0+Zmx1c2gobV9pZGVudGlmaWVyLCBXVEZNb3ZlKHByb21pc2UpKTsKK30KKwordm9pZCBGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y2xvc2UoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYg
cHJvbWlzZSkKK3sKKyAgICBpZiAobV9pc0Nsb3NlZCkKKyAgICAgICAgcmV0dXJuIHByb21pc2Uu
cmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOworCisgICAgbV9zb3VyY2Ut
PmNsb3NlKG1faWRlbnRpZmllciwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBwcm9t
aXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgICAgICBp
ZiAod2Vha1RoaXMpCisgICAgICAgICAgICB3ZWFrVGhpcy0+ZGlkQ2xvc2UoKTsKKworICAgICAg
ICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOworICAgIH0pOworfQorCit2b2lkIEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpkaWRDbG9zZSgpCit7CisgICAgbV9pc0Nsb3NlZCA9
IHRydWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjllNDE1N2I2NTQxYjkzZTZlYTVmZTAyMzdm
MGNmMjE1ZDAzYzNiZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oCkBAIC0wLDAgKzEs
NjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIklETFR5cGVzLmgiCisjaW5j
bHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBGaWxl
U3lzdGVtRmlsZUhhbmRsZTsKK3RlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBET01Qcm9taXNlRGVm
ZXJyZWQ7CisKK2NsYXNzIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlIDogcHVibGljIFJlZkNv
dW50ZWQ8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+IHsKK3B1YmxpYzoKKyAgICBzdHJ1Y3QgRmlsZXN5
c3RlbVJlYWRXcml0ZU9wdGlvbnMgeworICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgYXQ7Cisg
ICAgfTsKKworICAgIHN0YXRpYyBSZWY8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+IGNyZWF0
ZShGaWxlU3lzdGVtRmlsZUhhbmRsZSYsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRp
Zmllcik7CisgICAgfkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKCk7CisKKyAgICB2b2lkIHRy
dW5jYXRlKHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4m
Jik7CisgICAgdm9pZCBnZXRTaXplKERPTVByb21pc2VEZWZlcnJlZDxJRExVbnNpZ25lZExvbmdM
b25nPiYmKTsKKyAgICB2b2lkIGZsdXNoKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKyAg
ICB2b2lkIGNsb3NlKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKyAgICB2b2lkIGRpZENs
b3NlKCk7CisKK3ByaXZhdGU6CisgICAgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5
c3RlbUZpbGVIYW5kbGUmLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpOwor
CisgICAgUmVmPEZpbGVTeXN0ZW1GaWxlSGFuZGxlPiBtX3NvdXJjZTsKKyAgICBGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgIGJvb2wgbV9pc0Ns
b3NlZCB7IGZhbHNlIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMTIwNjRhNmRmNjEx
YzQxMjFlMjVjNzEwMmYwMzMwM2NlNDQ5NGFhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
LmlkbApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRCeVNldHRp
bmc9QWNjZXNzSGFuZGxlRW5hYmxlZCwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAor
ICAgIEV4cG9zZWQ9RGVkaWNhdGVkV29ya2VyLAorICAgIFNlY3VyZUNvbnRleHQKK10gaW50ZXJm
YWNlIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlIHsKKyAgICBQcm9taXNlPHVuZGVmaW5lZD4g
dHJ1bmNhdGUoW0VuZm9yY2VSYW5nZV0gdW5zaWduZWQgbG9uZyBsb25nIHNpemUpOworICAgIFBy
b21pc2U8dW5zaWduZWQgbG9uZyBsb25nPiBnZXRTaXplKCk7CisgICAgUHJvbWlzZTx1bmRlZmlu
ZWQ+IGZsdXNoKCk7CisgICAgUHJvbWlzZTx1bmRlZmluZWQ+IGNsb3NlKCk7Cit9OworCitkaWN0
aW9uYXJ5IEZpbGVzeXN0ZW1SZWFkV3JpdGVPcHRpb25zIHsKKyAgICBbRW5mb3JjZVJhbmdlXSB1
bnNpZ25lZCBsb25nIGxvbmcgYXQ7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
ci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMxMzUxYmYyZDk0ZTVmM2E3
ZTYxYzY5OWNhYjgyN2ExNzhiNjE3NWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyLmgKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitlbnVtIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllclR5cGUgeyB9OwordXNp
bmcgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmll
cjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXJUeXBlPjsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24uY3BwCmluZGV4IDQ1ZWIzZWM5NWI3NjUxZTdjMTVlMzBhNjk5YzQ3NGI2NTUy
ZDQzY2QuLmZhN2Y2NjkzNTcxNjBiNzkxZGMyNWExYTMyMDgzZGEyNjk4NTY2YjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCkBAIC02
NCw3ICs2NCw3IEBAIHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpzY29w
ZUNsb3NlZCgpCiAgICAgZm9yIChhdXRvJiBjYWxsYmFjayA6IGdldEhhbmRsZUNhbGxiYWNrcy52
YWx1ZXMoKSkKICAgICAgICAgY2FsbGJhY2soRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3Ig
fSk7CiAKLSAgICBhdXRvIHJlbW92ZUVudHJ5Q2FsbGJhY2tzID0gc3RkOjpleGNoYW5nZShtX3Jl
bW92ZUVudHJ5Q2FsbGJhY2tzLCB7IH0pOworICAgIGF1dG8gcmVtb3ZlRW50cnlDYWxsYmFja3Mg
PSBzdGQ6OmV4Y2hhbmdlKG1fdm9pZENhbGxiYWNrcywgeyB9KTsKICAgICBmb3IgKGF1dG8mIGNh
bGxiYWNrIDogcmVtb3ZlRW50cnlDYWxsYmFja3MudmFsdWVzKCkpCiAgICAgICAgIGNhbGxiYWNr
KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOwogCkBAIC0xNDcsMTkgKzE0NywxOSBA
QCB2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6ZGlkR2V0SGFuZGxlKENh
bGxiYWNrSWRlbnRpZmllciBjYWxsYmFjawogICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKHJlc3Vs
dCkpOwogfQogCi12b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6cmVtb3Zl
RW50cnkoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b246OlJlbW92ZUVudHJ5Q2FsbGJhY2smJiBjYWxsYmFjaykKK3ZvaWQgV29ya2VyRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uOjpyZW1vdmVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHks
IEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Vm9pZENhbGxiYWNrJiYgY2FsbGJhY2spCiB7
CiAgICAgaWYgKCFtX3Njb3BlKQogICAgICAgICByZXR1cm4gY2FsbGJhY2soRXhjZXB0aW9uIHsg
SW52YWxpZFN0YXRlRXJyb3IgfSk7CiAKICAgICBhdXRvIGNhbGxiYWNrSWRlbnRpZmllciA9IENh
bGxiYWNrSWRlbnRpZmllcjo6Z2VuZXJhdGVUaHJlYWRTYWZlKCk7Ci0gICAgbV9yZW1vdmVFbnRy
eUNhbGxiYWNrcy5hZGQoY2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7Cisg
ICAgbV92b2lkQ2FsbGJhY2tzLmFkZChjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUoY2FsbGJh
Y2spKTsKIAogICAgIGNhbGxPbk1haW5UaHJlYWQoW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2Vy
VGhyZWFkID0gUmVmIHsgbV9zY29wZS0+dGhyZWFkKCkgfSwgbWFpblRocmVhZENvbm5lY3Rpb24g
PSBtX21haW5UaHJlYWRDb25uZWN0aW9uLCBpZGVudGlmaWVyLCBuYW1lID0gbmFtZS5pc29sYXRl
ZENvcHkoKSwgZGVsZXRlUmVjdXJzaXZlbHldKCkgbXV0YWJsZSB7CiAgICAgICAgIGF1dG8gbWFp
blRocmVhZENhbGxiYWNrID0gW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gV1RG
TW92ZSh3b3JrZXJUaHJlYWQpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgICAgICB3
b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoW2NhbGxiYWNrSWRlbnRpZmll
ciwgcmVzdWx0ID0gY3Jvc3NUaHJlYWRDb3B5KHJlc3VsdCldIChhdXRvJiBzY29wZSkgbXV0YWJs
ZSB7CiAgICAgICAgICAgICAgICAgaWYgKGF1dG8gY29ubmVjdGlvbiA9IGRvd25jYXN0PFdvcmtl
ckdsb2JhbFNjb3BlPihzY29wZSkuZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKCkpCi0gICAg
ICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPmRpZFJlbW92ZUVudHJ5KGNhbGxiYWNrSWRlbnRp
ZmllciwgV1RGTW92ZShyZXN1bHQpKTsKKyAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+
Y29tcGxldGVWb2lkQ2FsbGJhY2soY2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3VsdCkp
OwogICAgICAgICAgICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CiAgICAgICAg
IH07CiAKQEAgLTE2NywxMiArMTY3LDYgQEAgdm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OnJlbW92ZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGkKICAgICB9
KTsKIH0KIAotdm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmRpZFJlbW92
ZUVudHJ5KENhbGxiYWNrSWRlbnRpZmllciBjYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9y
PHZvaWQ+JiYgcmVzdWx0KQotewotICAgIGlmIChhdXRvIGNhbGxiYWNrID0gbV9yZW1vdmVFbnRy
eUNhbGxiYWNrcy50YWtlKGNhbGxiYWNrSWRlbnRpZmllcikpCi0gICAgICAgIGNhbGxiYWNrKFdU
Rk1vdmUocmVzdWx0KSk7Ci19Ci0KIHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uOjpyZXNvbHZlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIEZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyIG90aGVySWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOjpSZXNvbHZlQ2FsbGJhY2smJiBjYWxsYmFjaykKIHsKICAgICBpZiAoIW1fc2Nv
cGUpCkBAIC0xOTksNCArMTkzLDEyMiBAQCB2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbjo6ZGlkUmVzb2x2ZShDYWxsYmFja0lkZW50aWZpZXIgY2FsbGJhY2tJZAogICAgICAg
ICBjYWxsYmFjayhXVEZNb3ZlKHJlc3VsdCkpOwogfQogCit2b2lkIFdvcmtlckZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6ZGlkQ3JlYXRlU3luY0FjY2Vzc0hhbmRsZShDYWxsYmFja0lkZW50
aWZpZXIgY2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXI+JiYgcmVzdWx0KQoreworICAgIGlmIChhdXRvIGNhbGxiYWNrID0g
bV9nZXRBY2Nlc3NIYW5kbENhbGxiYWNrcy50YWtlKGNhbGxiYWNrSWRlbnRpZmllcikpCisgICAg
ICAgIGNhbGxiYWNrKFdURk1vdmUocmVzdWx0KSk7Cit9CisKK3ZvaWQgV29ya2VyRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uOjpjb21wbGV0ZUludGVnZXJDYWxsYmFjayhDYWxsYmFja0lkZW50
aWZpZXIgY2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25Pcjx1aW50NjRfdD4mJiByZXN1bHQp
Cit7CisgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX2ludGVnZXJDYWxsYmFja3MudGFrZShjYWxs
YmFja0lkZW50aWZpZXIpKQorICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKHJlc3VsdCkpOworfQor
Cit2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y29tcGxldGVWb2lkQ2Fs
bGJhY2soQ2FsbGJhY2tJZGVudGlmaWVyIGNhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8
dm9pZD4mJiByZXN1bHQpCit7CisgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX3ZvaWRDYWxsYmFj
a3MudGFrZShjYWxsYmFja0lkZW50aWZpZXIpKQorICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKHJl
c3VsdCkpOworfQorCit2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y3Jl
YXRlU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVy
LCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEFjY2Vzc0hhbmRsZUNhbGxiYWNrJiYg
Y2FsbGJhY2spCit7CisgICAgaWYgKCFtX3Njb3BlKQorICAgICAgICByZXR1cm4gY2FsbGJhY2so
RXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CisKKyAgICBhdXRvIGNhbGxiYWNrSWRl
bnRpZmllciA9IENhbGxiYWNrSWRlbnRpZmllcjo6Z2VuZXJhdGVUaHJlYWRTYWZlKCk7CisgICAg
bV9nZXRBY2Nlc3NIYW5kbENhbGxiYWNrcy5hZGQoY2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3Zl
KGNhbGxiYWNrKSk7CisKKyAgICBjYWxsT25NYWluVGhyZWFkKFtjYWxsYmFja0lkZW50aWZpZXIs
IHdvcmtlclRocmVhZCA9IFJlZiB7IG1fc2NvcGUtPnRocmVhZCgpIH0sIG1haW5UaHJlYWRDb25u
ZWN0aW9uID0gbV9tYWluVGhyZWFkQ29ubmVjdGlvbiwgaWRlbnRpZmllcl0oKSBtdXRhYmxlIHsK
KyAgICAgICAgYXV0byBtYWluVGhyZWFkQ2FsbGJhY2sgPSBbY2FsbGJhY2tJZGVudGlmaWVyLCB3
b3JrZXJUaHJlYWQgPSBXVEZNb3ZlKHdvcmtlclRocmVhZCldKGF1dG8gcmVzdWx0KSBtdXRhYmxl
IHsKKyAgICAgICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShb
Y2FsbGJhY2tJZGVudGlmaWVyLCByZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0KV0gKGF1
dG8mIHNjb3BlKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBjb25uZWN0aW9u
ID0gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5maWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24oKSkKKyAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+ZGlkQ3JlYXRlU3lu
Y0FjY2Vzc0hhbmRsZShjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUocmVzdWx0KSk7CisgICAg
ICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKKyAgICAgICAgfTsKKwor
ICAgICAgICBtYWluVGhyZWFkQ29ubmVjdGlvbi0+Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZShpZGVu
dGlmaWVyLCBXVEZNb3ZlKG1haW5UaHJlYWRDYWxsYmFjaykpOworICAgIH0pOworfQorCit2b2lk
IFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Z2V0U2l6ZShGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50
aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OjpJbnRlZ2VyQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBpZiAoIW1fc2NvcGUpCisgICAg
ICAgIHJldHVybiBjYWxsYmFjayhFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKwor
ICAgIGF1dG8gY2FsbGJhY2tJZGVudGlmaWVyID0gQ2FsbGJhY2tJZGVudGlmaWVyOjpnZW5lcmF0
ZVRocmVhZFNhZmUoKTsKKyAgICBtX2ludGVnZXJDYWxsYmFja3MuYWRkKGNhbGxiYWNrSWRlbnRp
ZmllciwgV1RGTW92ZShjYWxsYmFjaykpOworCisgICAgY2FsbE9uTWFpblRocmVhZChbY2FsbGJh
Y2tJZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQgPSBSZWYgeyBtX3Njb3BlLT50aHJlYWQoKSB9LCBt
YWluVGhyZWFkQ29ubmVjdGlvbiA9IG1fbWFpblRocmVhZENvbm5lY3Rpb24sIGlkZW50aWZpZXIs
IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXJdKCkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8gbWFpblRo
cmVhZENhbGxiYWNrID0gW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gV1RGTW92
ZSh3b3JrZXJUaHJlYWQpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgICAgICB3b3Jr
ZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoW2NhbGxiYWNrSWRlbnRpZmllciwg
cmVzdWx0ID0gY3Jvc3NUaHJlYWRDb3B5KHJlc3VsdCldIChhdXRvJiBzY29wZSkgbXV0YWJsZSB7
CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gY29ubmVjdGlvbiA9IGRvd25jYXN0PFdvcmtlckds
b2JhbFNjb3BlPihzY29wZSkuZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKCkpCisgICAgICAg
ICAgICAgICAgICAgIGNvbm5lY3Rpb24tPmNvbXBsZXRlSW50ZWdlckNhbGxiYWNrKGNhbGxiYWNr
SWRlbnRpZmllciwgV1RGTW92ZShyZXN1bHQpKTsKKyAgICAgICAgICAgIH0sIFdvcmtlclJ1bkxv
b3A6OmRlZmF1bHRNb2RlKCkpOworICAgICAgICB9OworCisgICAgICAgIG1haW5UaHJlYWRDb25u
ZWN0aW9uLT5nZXRTaXplKGlkZW50aWZpZXIsIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdURk1v
dmUobWFpblRocmVhZENhbGxiYWNrKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV29ya2VyRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjp0cnVuY2F0ZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNz
SGFuZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uOjpWb2lkQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBpZiAoIW1fc2NvcGUpCisgICAg
ICAgIHJldHVybiBjYWxsYmFjayhFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKwor
ICAgIGF1dG8gY2FsbGJhY2tJZGVudGlmaWVyID0gQ2FsbGJhY2tJZGVudGlmaWVyOjpnZW5lcmF0
ZVRocmVhZFNhZmUoKTsKKyAgICBtX3ZvaWRDYWxsYmFja3MuYWRkKGNhbGxiYWNrSWRlbnRpZmll
ciwgV1RGTW92ZShjYWxsYmFjaykpOworCisgICAgY2FsbE9uTWFpblRocmVhZChbY2FsbGJhY2tJ
ZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQgPSBSZWYgeyBtX3Njb3BlLT50aHJlYWQoKSB9LCBtYWlu
VGhyZWFkQ29ubmVjdGlvbiA9IG1fbWFpblRocmVhZENvbm5lY3Rpb24sIGlkZW50aWZpZXIsIGFj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIsIHNpemVdKCkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8gbWFp
blRocmVhZENhbGxiYWNrID0gW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gV1RG
TW92ZSh3b3JrZXJUaHJlYWQpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgICAgICB3
b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoW2NhbGxiYWNrSWRlbnRpZmll
ciwgcmVzdWx0ID0gY3Jvc3NUaHJlYWRDb3B5KHJlc3VsdCldIChhdXRvJiBzY29wZSkgbXV0YWJs
ZSB7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gY29ubmVjdGlvbiA9IGRvd25jYXN0PFdvcmtl
ckdsb2JhbFNjb3BlPihzY29wZSkuZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKCkpCisgICAg
ICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPmNvbXBsZXRlVm9pZENhbGxiYWNrKGNhbGxiYWNr
SWRlbnRpZmllciwgV1RGTW92ZShyZXN1bHQpKTsKKyAgICAgICAgICAgIH0sIFdvcmtlclJ1bkxv
b3A6OmRlZmF1bHRNb2RlKCkpOworICAgICAgICB9OworCisgICAgICAgIG1haW5UaHJlYWRDb25u
ZWN0aW9uLT50cnVuY2F0ZShpZGVudGlmaWVyLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBzaXpl
LCBXVEZNb3ZlKG1haW5UaHJlYWRDYWxsYmFjaykpOworICAgIH0pOworfQorCit2b2lkIFdvcmtl
ckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Zmx1c2goRmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIgaWRlbnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Vm9pZENh
bGxiYWNrJiYgY2FsbGJhY2spCit7CisgICAgaWYgKCFtX3Njb3BlKQorICAgICAgICByZXR1cm4g
Y2FsbGJhY2soRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CisKKyAgICBhdXRvIGNh
bGxiYWNrSWRlbnRpZmllciA9IENhbGxiYWNrSWRlbnRpZmllcjo6Z2VuZXJhdGVUaHJlYWRTYWZl
KCk7CisgICAgbV92b2lkQ2FsbGJhY2tzLmFkZChjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUo
Y2FsbGJhY2spKTsKKworICAgIGNhbGxPbk1haW5UaHJlYWQoW2NhbGxiYWNrSWRlbnRpZmllciwg
d29ya2VyVGhyZWFkID0gUmVmIHsgbV9zY29wZS0+dGhyZWFkKCkgfSwgbWFpblRocmVhZENvbm5l
Y3Rpb24gPSBtX21haW5UaHJlYWRDb25uZWN0aW9uLCBpZGVudGlmaWVyLCBhY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyXSgpIG11dGFibGUgeworICAgICAgICBhdXRvIG1haW5UaHJlYWRDYWxsYmFjayA9
IFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFdURk1vdmUod29ya2VyVGhyZWFk
KV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgICAgICAgICAgd29ya2VyVGhyZWFkLT5ydW5M
b29wKCkucG9zdFRhc2tGb3JNb2RlKFtjYWxsYmFja0lkZW50aWZpZXIsIHJlc3VsdCA9IGNyb3Nz
VGhyZWFkQ29weShyZXN1bHQpXSAoYXV0byYgc2NvcGUpIG11dGFibGUgeworICAgICAgICAgICAg
ICAgIGlmIChhdXRvIGNvbm5lY3Rpb24gPSBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oc2Nv
cGUpLmZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbigpKQorICAgICAgICAgICAgICAgICAgICBj
b25uZWN0aW9uLT5jb21wbGV0ZVZvaWRDYWxsYmFjayhjYWxsYmFja0lkZW50aWZpZXIsIFdURk1v
dmUocmVzdWx0KSk7CisgICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgp
KTsKKyAgICAgICAgfTsKKworICAgICAgICBtYWluVGhyZWFkQ29ubmVjdGlvbi0+Zmx1c2goaWRl
bnRpZmllciwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV1RGTW92ZShtYWluVGhyZWFkQ2FsbGJh
Y2spKTsKKyAgICB9KTsKK30KKwordm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b246OmNsb3NlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAg
IGlmICghbV9zY29wZSkKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IEludmFs
aWRTdGF0ZUVycm9yIH0pOworCisgICAgYXV0byBjYWxsYmFja0lkZW50aWZpZXIgPSBDYWxsYmFj
a0lkZW50aWZpZXI6OmdlbmVyYXRlVGhyZWFkU2FmZSgpOworICAgIG1fdm9pZENhbGxiYWNrcy5h
ZGQoY2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisKKyAgICBjYWxsT25N
YWluVGhyZWFkKFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFJlZiB7IG1fc2Nv
cGUtPnRocmVhZCgpIH0sIG1haW5UaHJlYWRDb25uZWN0aW9uID0gbV9tYWluVGhyZWFkQ29ubmVj
dGlvbiwgaWRlbnRpZmllciwgYWNjZXNzSGFuZGxlSWRlbnRpZmllcl0oKSBtdXRhYmxlIHsKKyAg
ICAgICAgYXV0byBtYWluVGhyZWFkQ2FsbGJhY2sgPSBbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3Jr
ZXJUaHJlYWQgPSBXVEZNb3ZlKHdvcmtlclRocmVhZCldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsK
KyAgICAgICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbY2Fs
bGJhY2tJZGVudGlmaWVyLCByZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0KV0gKGF1dG8m
IHNjb3BlKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBjb25uZWN0aW9uID0g
ZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5maWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24oKSkKKyAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+Y29tcGxldGVWb2lkQ2Fs
bGJhY2soY2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAgICAg
fSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CisgICAgICAgIH07CisKKyAgICAgICAg
bWFpblRocmVhZENvbm5lY3Rpb24tPmNsb3NlKGlkZW50aWZpZXIsIGFjY2Vzc0hhbmRsZUlkZW50
aWZpZXIsIFdURk1vdmUobWFpblRocmVhZENhbGxiYWNrKSk7CisgICAgfSk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24uaAppbmRleCBlYzY5ZDE3NWEyZjc1OWYwNmIzZjFjNTQ3NDRkNzEwYzllNjFj
M2FjLi45MGNiY2JmNjczYTU4NmYyNzQ0MmY5NjQwMzQ3YTkyNTI2NTBjZmM0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCkBAIC00Niw4ICs0
NiwxMCBAQCBwdWJsaWM6CiAgICAgdXNpbmcgQ2FsbGJhY2tJZGVudGlmaWVyID0gV29ya2VyRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uQ2FsbGJhY2tJZGVudGlmaWVyOwogICAgIHZvaWQgZGlk
SXNTYW1lRW50cnkoQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25Pcjxib29sPiYmKTsKICAg
ICB2b2lkIGRpZEdldEhhbmRsZShDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPEZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyPiYmKTsKLSAgICB2b2lkIGRpZFJlbW92ZUVudHJ5KENhbGxi
YWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8dm9pZD4mJik7CiAgICAgdm9pZCBkaWRSZXNvbHZl
KENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8VmVjdG9yPFN0cmluZz4+JiYpOworICAg
IHZvaWQgZGlkQ3JlYXRlU3luY0FjY2Vzc0hhbmRsZShDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2Vw
dGlvbk9yPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcj4mJiByZXN1bHQpOwor
ICAgIHZvaWQgY29tcGxldGVWb2lkQ2FsbGJhY2soQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRp
b25Pcjx2b2lkPiYmIHJlc3VsdCk7CisgICAgdm9pZCBjb21wbGV0ZUludGVnZXJDYWxsYmFjayhD
YWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPHVpbnQ2NF90PiYmIHJlc3VsdCk7CiAKIHBy
aXZhdGU6CiAgICAgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKFdvcmtlckdsb2Jh
bFNjb3BlJiwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJik7CkBAIC01NiwxNSAr
NTgsMjMgQEAgcHJpdmF0ZToKICAgICB2b2lkIGlzU2FtZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOjpTYW1lRW50cnlDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIGdldEZpbGVI
YW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9v
bCBjcmVhdGVJZk5lY2Vzc2FyeSwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRIYW5k
bGVDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIGdldERpcmVjdG9yeUhhbmRsZShGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVj
ZXNzYXJ5LCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhhbmRsZUNhbGxiYWNrJiYp
IGZpbmFsOwotICAgIHZvaWQgcmVtb3ZlRW50cnkoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpSZW1vdmVFbnRyeUNhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQg
cmVtb3ZlRW50cnkoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFt
ZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpW
b2lkQ2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9pZCByZXNvbHZlKEZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOjpSZXNvbHZlQ2FsbGJhY2smJikgZmluYWw7CiAKKyAgICB2b2lkIGNyZWF0ZVN5
bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbjo6R2V0QWNjZXNzSGFuZGxlQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9p
ZCBnZXRTaXplKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6SW50ZWdlckNh
bGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgdHJ1bmNhdGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6
ZSwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJikgZmluYWw7Cisg
ICAgdm9pZCBmbHVzaChGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRD
YWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIGNsb3NlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbjo6Vm9pZENhbGxiYWNrJiYpIGZpbmFsOworCiAgICAgV2Vha1B0cjxXb3Jr
ZXJHbG9iYWxTY29wZT4gbV9zY29wZTsKICAgICBSZWZQdHI8RmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uPiBtX21haW5UaHJlYWRDb25uZWN0aW9uOwogICAgIEhhc2hNYXA8Q2FsbGJhY2tJZGVu
dGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlNhbWVFbnRyeUNhbGxiYWNrPiBt
X3NhbWVFbnRyeUNhbGxiYWNrczsKICAgICBIYXNoTWFwPENhbGxiYWNrSWRlbnRpZmllciwgRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRIYW5kbGVDYWxsYmFjaz4gbV9nZXRIYW5kbGVD
YWxsYmFja3M7Ci0gICAgSGFzaE1hcDxDYWxsYmFja0lkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbjo6UmVtb3ZlRW50cnlDYWxsYmFjaz4gbV9yZW1vdmVFbnRyeUNhbGxiYWNr
czsKICAgICBIYXNoTWFwPENhbGxiYWNrSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpSZXNvbHZlQ2FsbGJhY2s+IG1fcmVzb2x2ZUNhbGxiYWNrczsKKyAgICBIYXNoTWFw
PENhbGxiYWNrSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRBY2Nl
c3NIYW5kbGVDYWxsYmFjaz4gbV9nZXRBY2Nlc3NIYW5kbENhbGxiYWNrczsKKyAgICBIYXNoTWFw
PENhbGxiYWNrSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2Fs
bGJhY2s+IG1fdm9pZENhbGxiYWNrczsKKyAgICBIYXNoTWFwPENhbGxiYWNrSWRlbnRpZmllciwg
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpJbnRlZ2VyQ2FsbGJhY2s+IG1faW50ZWdlckNh
bGxiYWNrczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXgg
MWVmZjZhZWIzOWJhMDJhNzM1ZjIxNGMzNGZkNzBjMTAzM2U5M2YxMC4uOTM5NzgxZDAzMTQ5YTc5
YzBlZTQ3ZGZiMmUwOWI4MGU5MmVmZTA4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTYxLDYgKzYxLDcg
QEAgTW9kdWxlcy9mZXRjaC9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlRmV0Y2guY3BwCiBNb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5jcHAKIE1vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKIE1vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmNwcAorTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcAogTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKIE1vZHVsZXMvZ2VvbG9j
YXRpb24vR2VvTm90aWZpZXIuY3BwCiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNw
cApAQCAtMzA0Niw2ICszMDQ3LDcgQEAgSlNGaWxlU3lzdGVtRW50cnlDYWxsYmFjay5jcHAKIEpT
RmlsZVN5c3RlbUZpbGVFbnRyeS5jcHAKIEpTRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCiBKU0Zp
bGVTeXN0ZW1IYW5kbGUuY3BwCitKU0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcAogSlNG
aWxsTW9kZS5jcHAKIEpTRm9jdXNFdmVudC5jcHAKIEpTRm9jdXNPcHRpb25zLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDYx
NGMzZDcwYzJjYjEzZGZjMWMyMGNiMjYwODUyNjcwZjRlZDdlNWEuLjUyNWJiYWIxZTAwODFlYzAz
MmUyYWJkMjI1YjJiNWNhMjFlZmQ5YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI4MTAsNiArMjgxMCw3IEBACiAJCTkzMEFB
QzlBMjUwRUI4NDkwMDEzREE5RiAvKiBDU1NDb25kaXRpb25SdWxlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzBBQUM5ODI1MEVCODE3MDAxM0RBOUYg
LyogQ1NTQ29uZGl0aW9uUnVsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTkzMEFBQzlGMjUwRUQ0MDkwMDEzREE5RiAvKiBKU0NTU0NvbmRpdGlv
blJ1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
MEFBQzlEMjUwRUQ0MDkwMDEzREE5RiAvKiBKU0NTU0NvbmRpdGlvblJ1bGUuaCAqLzsgfTsKIAkJ
OTMwQUFDQTIyNTBFRDQxMTAwMTNEQTlGIC8qIEpTQ1NTR3JvdXBpbmdSdWxlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzBBQUNBMDI1MEVENDExMDAx
M0RBOUYgLyogSlNDU1NHcm91cGluZ1J1bGUuaCAqLzsgfTsKKwkJOTMwRTQ0ODYyNzBDMzcyMjAw
REU3QUI3IC8qIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwRTQ0ODQyNzBDMzcyMTAw
REU3QUI3IC8qIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzMTUzQkRBMTQxODFG
N0EwMEZDRjVCRSAvKiBtaXNzaW5nSW1hZ2VAMngucG5nIGluIFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzE1M0JEOTE0MTgxRjdBMDBGQ0Y1QkUgLyogbWlz
c2luZ0ltYWdlQDJ4LnBuZyAqLzsgfTsKIAkJOTMxNTNCREMxNDE5NTlCQzAwRkNGNUJFIC8qIHRl
eHRBcmVhUmVzaXplQ29ybmVyLnBuZyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTMxNTNCREIxNDE5NTlCQjAwRkNGNUJFIC8qIHRleHRBcmVhUmVzaXpl
Q29ybmVyLnBuZyAqLzsgfTsKIAkJOTMxNTNCRTIxNDE5NUE1NzAwRkNGNUJFIC8qIG1pc3NpbmdJ
bWFnZS5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzMTUzQkUxMTQxOTVBNTcwMEZDRjVCRSAvKiBtaXNzaW5nSW1hZ2UucG5nICovOyB9OwpAQCAt
Mjk2Myw2ICsyOTY0LDcgQEAKIAkJOTNENkI3QTgyNTUxRDQxRjAwNThERDNBIC8qIER1bW15U3Bl
ZWNoUmVjb2duaXRpb25Qcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTNENkI3QTYyNTUxRDNFRDAwNThERDNBIC8qIER1bW15U3BlZWNoUmVj
b2duaXRpb25Qcm92aWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTkzRDlENTNDMERBMjdFMTgwMDc3MjE2QyAvKiBSYW5nZUJvdW5kYXJ5UG9p
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDlE
NTNCMERBMjdFMTgwMDc3MjE2QyAvKiBSYW5nZUJvdW5kYXJ5UG9pbnQuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0UyNDFGRjBCMkI0RTQwMDBD
NzMyQTEgLyogSFRNTEZyYW1lT3duZXJFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0UyNDFGRTBCMkI0RTQwMDBDNzMyQTEgLyogSFRNTEZy
YW1lT3duZXJFbGVtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJOTNFMjY5QTIyNzBBNUQ1RDAwMkM0RkYwIC8qIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5M0UyNjk5RjI3MEE1RDVDMDAyQzRGRjAgLyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0Uy
QTMwNzEyM0U5REMwMDA5RkUxMkEgLyogSFRNTFBhcnNlcklkaW9tcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNFMkEzMDUxMjNFOURDMDAwOUZFMTJB
IC8qIEhUTUxQYXJzZXJJZGlvbXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk5M0U1QjI2NTI0NTVFOTZGMDA1QzUyRDAgLyogQXR0cmlidXRlZFN0
cmluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNF
NUIyNjMyNDU1RTk2RjAwNUM1MkQwIC8qIEF0dHJpYnV0ZWRTdHJpbmcuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0YxOThFNTA4MjQ1RTU5MDAx
RTlBQkMgLyogSFRNTERvY3VtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNTIzRDIzQzAyREU0Mzk2MDE4NjM1Q0EgLyogSFRNTERvY3VtZW50Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTExNjk1
LDYgKzExNjk3LDcgQEAKIAkJOTMwQUFDQTAyNTBFRDQxMTAwMTNEQTlGIC8qIEpTQ1NTR3JvdXBp
bmdSdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ1NTR3JvdXBpbmdS
dWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMEFBQ0ExMjUwRUQ0MTEwMDEz
REE5RiAvKiBKU0NTU0dyb3VwaW5nUnVsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU0NTU0dyb3VwaW5nUnVsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTkzMEM5MERDMTlDRjk2NTMwMEQ2QzIxQSAvKiBMZWdhY3lJbmxpbmVJdGVyYXRvci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMZWdhY3lJbmxpbmVJdGVy
YXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzMEU0NDg0MjcwQzM3MjEw
MERFN0FCNyAvKiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMTUzQkQ5MTQxODFGN0Ew
MEZDRjVCRSAvKiBtaXNzaW5nSW1hZ2VAMngucG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRoID0gIm1pc3NpbmdJbWFnZUAy
eC5wbmciOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzE1M0JEQjE0MTk1OUJCMDBG
Q0Y1QkUgLyogdGV4dEFyZWFSZXNpemVDb3JuZXIucG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRoID0gdGV4dEFyZWFSZXNp
emVDb3JuZXIucG5nOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzE1M0JFMTE0MTk1
QTU3MDBGQ0Y1QkUgLyogbWlzc2luZ0ltYWdlLnBuZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGltYWdlLnBuZzsgcGF0aCA9IG1pc3NpbmdJbWFnZS5w
bmc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTk5NCw2ICsxMTk5Nyw5IEBACiAJ
CTkzRTIyN0RGMEFGNTg5QUQwMEQ0ODMyNCAvKiBTdWJyZXNvdXJjZUxvYWRlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdWJyZXNvdXJjZUxvYWRlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRTI0MUZFMEIyQjRFNDAwMEM3MzJBMSAvKiBI
VE1MRnJhbWVPd25lckVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SFRNTEZyYW1lT3duZXJFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkz
RTI0MjVFMEIyQjUwOTUwMEM3MzJBMSAvKiBIVE1MRnJhbWVPd25lckVsZW1lbnQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTEZyYW1lT3duZXJFbGVtZW50LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNFMjY5OUQyNzBBNUQ1QjAwMkM0RkYw
IC8qIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTkzRTI2OTlGMjcwQTVENUMwMDJDNEZGMCAvKiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0UyNjlBMDI3MEE1
RDVDMDAyQzRGRjAgLyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0UyQTMwNDEyM0U5REMwMDA5RkUxMkEg
LyogSFRNTFBhcnNlcklkaW9tcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBIVE1MUGFyc2VySWRpb21zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTNFMkEzMDUxMjNFOURDMDAwOUZFMTJBIC8qIEhUTUxQYXJzZXJJZGlvbXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTFBhcnNlcklkaW9tcy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5M0U1QjI1NDI0NTM2QjFFMDA1QzUyRDAgLyogVVJMRGVjb21wb3Np
dGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVUkxEZWNvbXBv
c2l0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIzNDM4LDYgKzIzNDQ0
LDEwIEBACiAJCQkJOTMyQzlCRDkyNkRENjI2MDAwNTNCM0RCIC8qIEZpbGVTeXN0ZW1IYW5kbGUu
aWRsICovLAogCQkJCTkzNTQyNDI3MjcwM0JDODgwMDVDQTcyQyAvKiBGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllci5oICovLAogCQkJCTkzNTQyNDI5MjcwM0JDQUQwMDVDQTcyQyAvKiBGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24uaCAqLywKKwkJCQk5M0UyNjlBMDI3MEE1RDVDMDAyQzRGRjAg
LyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwICovLAorCQkJCTkzRTI2OTlGMjcwQTVE
NUMwMDJDNEZGMCAvKiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oICovLAorCQkJCTkzRTI2
OTlEMjcwQTVENUIwMDJDNEZGMCAvKiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5pZGwgKi8s
CisJCQkJOTMwRTQ0ODQyNzBDMzcyMTAwREU3QUI3IC8qIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlSWRlbnRpZmllci5oICovLAogCQkJCTkzNDQzRTdCMjZFOEE2QkMwMDU4NTM4RiAvKiBTdG9y
YWdlTWFuYWdlcitGaWxlU3lzdGVtQWNjZXNzLmlkbCAqLywKIAkJCQk5MzQ0M0U3RDI2RThBNkJD
MDA1ODUzOEYgLyogU3RvcmFnZU1hbmFnZXJGaWxlU3lzdGVtQWNjZXNzLmggKi8sCiAJCQkJOTMy
MzNDODUyNzA1NEM3ODAwQkJGNDFFIC8qIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bi5jcHAgKi8sCkBAIC0zMjU2MCw2ICszMjU3MCw4IEBACiAJCQkJOTM0NDNFODgyNkU5OTVDNDAw
NTg1MzhGIC8qIEZpbGVTeXN0ZW1IYW5kbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNTQyNDJG
MjcwM0NBNTEwMDVDQTcyQyAvKiBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTM1NDI0MzAyNzAzQ0I4NjAwNUNBNzJDIC8qIEZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNFMjY5QTIyNzBBNUQ1RDAwMkM0RkYw
IC8qIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzBF
NDQ4NjI3MEMzNzIyMDBERTdBQjcgLyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVFQjY5RjBFODFEQUVCMDBCMjU5NjUgLyogRmls
bExheWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk3MTJCRTQ4MzFGRTg2NUREMDAyMDMxQ0MgLyog
RmlsbE1vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTg0NUU3MkY4MEZEMjYxRUUwMEE4N0Q3OSAv
KiBGaWx0ZXIuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCmluZGV4IGU4MzVkZjdmZjBiMjIwZGViYTA1OGZkM2E4
NGRmNWQyYzI1MTM5NWMuLjJiYjlhOTM5YmZjYjZhOTc1ODg2MmY3ODg1NjZlNzJjMDRhMGU3MDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFt
ZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVz
LmgKQEAgLTEyNCw2ICsxMjQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oRmls
ZVN5c3RlbUZpbGVFbnRyeSkgXAogICAgIG1hY3JvKEZpbGVTeXN0ZW1GaWxlSGFuZGxlKSBcCiAg
ICAgbWFjcm8oRmlsZVN5c3RlbUhhbmRsZSkgXAorICAgIG1hY3JvKEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlKSBcCiAgICAgbWFjcm8oR2FtZXBhZCkgXAogICAgIG1hY3JvKEdhbWVwYWRCdXR0
b24pIFwKICAgICBtYWNybyhHYW1lcGFkRXZlbnQpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUVycm9yLmggYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5o
CmluZGV4IDQ0M2M5NTE0Y2Q5MzI5MTNkZGUzNGMyN2Y2YjViNTcyMDFhMGE0MWYuLjMxZjg0NzIx
MzRmOGVmYTBkYjJjZTZjYzQ0N2ZmNzBjOTY0NmJlNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUVycm9yLmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3IuaApAQCAtMjUsNyArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgPFdlYkNv
cmUvRXhjZXB0aW9uQ29kZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRXhjZXB0aW9uT3IuaD4KICNp
bmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTM0LDI2
ICszNCwzMiBAQCBlbnVtIGNsYXNzIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IgOiB1aW50OF90IHsK
ICAgICBGaWxlTm90Rm91bmQsCiAgICAgSW52YWxpZE5hbWUsCiAgICAgSW52YWxpZE1vZGlmaWNh
dGlvbiwKKyAgICBJbnZhbGlkU3RhdGUsCiAgICAgVHlwZU1pc21hdGNoLAogICAgIFVua25vd24K
IH07CiAKLWlubGluZSBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGNvbnZlcnRUb0V4Y2VwdGlvbkNv
ZGUoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvciBlcnJvcikKK2lubGluZSBXZWJDb3JlOjpFeGNlcHRp
b25Pcjx2b2lkPiBjb252ZXJ0VG9FeGNlcHRpb25PcihzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I+IGVycm9yKQogewotICAgIHN3aXRjaCAoZXJyb3IpIHsKKyAgICBpZiAoIWVy
cm9yKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgc3dpdGNoICgqZXJyb3IpIHsKICAgICBj
YXNlIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkZpbGVOb3RGb3VuZDoKLSAgICAgICAgcmV0dXJu
IFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGU6Ok5vdEZvdW5kRXJyb3I7CisgICAgICAgIHJldHVybiBX
ZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpOb3RGb3VuZEVycm9yIH07CiAgICAgY2FzZSBG
aWxlU3lzdGVtU3RvcmFnZUVycm9yOjpJbnZhbGlkTW9kaWZpY2F0aW9uOgotICAgICAgICByZXR1
cm4gV2ViQ29yZTo6RXhjZXB0aW9uQ29kZTo6SW52YWxpZE1vZGlmaWNhdGlvbkVycm9yOworICAg
ICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6SW52YWxpZE1vZGlmaWNh
dGlvbkVycm9yIH07CiAgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpUeXBlTWlzbWF0
Y2g6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpFeGNlcHRpb25Db2RlOjpUeXBlRXJyb3I7Cisg
ICAgICAgIHJldHVybiBXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpUeXBlRXJyb3IgfTsK
ICAgICBjYXNlIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWROYW1lOgotICAgICAgICBy
ZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uQ29kZTo6VW5rbm93bkVycm9yOworICAgICAgICByZXR1
cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAiTmFtZSBpcyBp
bnZhbGlkIiB9OworICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxpZFN0YXRl
OgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6SW52YWxpZFN0
YXRlRXJyb3IgfTsKICAgICBjYXNlIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd246CiAg
ICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIHJldHVybiBXZWJDb3JlOjpFeGNlcHRpb25Db2Rl
OjpVbmtub3duRXJyb3I7CisgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6
OlVua25vd25FcnJvciB9OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKQEAgLTY2LDYgKzcy
LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9y
YWdlRXJyb3I+IHsKICAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpGaWxl
Tm90Rm91bmQsCiAgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxp
ZE5hbWUsCiAgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxpZE1v
ZGlmaWNhdGlvbiwKKyAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpJbnZh
bGlkU3RhdGUsCiAgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VHlwZU1p
c21hdGNoLAogICAgICAgICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24K
ICAgICA+OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdl
L0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAKaW5kZXggMjJiYzNlZjRlZDI3
OGExOWUyNDA2Yzc5NDBjZmI2YzgzOGQ5MmRlYy4uMWYwM2UyN2NhNTVlYjRkMWFiMTFiY2Q3NTM1
MzBjYmU2MTVmNTI2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3BwCkBAIC0yOCw2
ICsyOCw3IEBACiAKICNpbmNsdWRlICJGaWxlU3lzdGVtU3RvcmFnZUVycm9yLmgiCiAjaW5jbHVk
ZSAiRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmgiCisjaW5jbHVkZSA8d3RmL1Njb3BlLmg+CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC0xMzksNCArMTQwLDg3IEBAIEV4cGVjdGVkPFZlY3Rv
cjxTdHJpbmc+LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRs
ZTo6cmVzb2x2CiAgICAgcmV0dXJuIHJlc3RQYXRoLnNwbGl0KHBhdGhTZXBhcmF0b3IpOwogfQog
CitFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIs
IEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpjcmVhdGVT
eW5jQWNjZXNzSGFuZGxlKCkKK3sKKyAgICBpZiAoIW1fbWFuYWdlcikKKyAgICAgICAgcmV0dXJu
IG1ha2VVbmV4cGVjdGVkKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24pOworCisgICAg
Ym9vbCBhY3F1aXJlZCA9IG1fbWFuYWdlci0+YWNxdWlyZUxvY2tGb3JGaWxlKG1fcGF0aCwgbV9p
ZGVudGlmaWVyKTsKKyAgICBpZiAoIWFjcXVpcmVkKQorICAgICAgICByZXR1cm4gbWFrZVVuZXhw
ZWN0ZWQoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxpZFN0YXRlKTsKKworICAgIEFTU0VS
VCghbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlKTsKKyAgICBtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5k
bGUgPSBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXI6OmdlbmVy
YXRlVGhyZWFkU2FmZSgpOworICAgIHJldHVybiBtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUudmFs
dWUoKTsKK30KKworRXhwZWN0ZWQ8dWludDY0X3QsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpnZXRTaXplKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKQoreworICAgIGlmICgh
bV9tYW5hZ2VyKQorICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvcjo6VW5rbm93bik7CisKKyAgICBpZiAoIW1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSB8
fCBtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUudmFsdWUoKSAhPSBhY2Nlc3NIYW5kbGVJZGVudGlm
aWVyKQorICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmlsZVN5c3RlbVN0b3JhZ2VFcnJv
cjo6VW5rbm93bik7CisKKyAgICBhdXRvIHNpemUgPSBGaWxlU3lzdGVtOjpmaWxlU2l6ZShtX3Bh
dGgpOworICAgIGlmICghc2l6ZSkKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24pOworCisgICAgcmV0dXJuIHNpemUudmFsdWUoKTsK
K30KKworc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZTo6dHJ1bmNhdGUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHVpbnQ2NF90IHNpemUpCit7CisgICAg
aWYgKCFtX21hbmFnZXIpCisgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpV
bmtub3duOworCisgICAgaWYgKCFtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgfHwgbV9hY3RpdmVT
eW5jQWNjZXNzSGFuZGxlLnZhbHVlKCkgIT0gYWNjZXNzSGFuZGxlSWRlbnRpZmllcikKKyAgICAg
ICAgcmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd247CisKKyAgICBhdXRvIGhh
bmRsZSA9IEZpbGVTeXN0ZW06Om9wZW5GaWxlKG1fcGF0aCwgRmlsZVN5c3RlbTo6RmlsZU9wZW5N
b2RlOjpSZWFkV3JpdGUpOworICAgIGF1dG8gY2xvc2VGaWxlU2NvcGUgPSBtYWtlU2NvcGVFeGl0
KFsmXSB7CisgICAgICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZShoYW5kbGUpOworICAgIH0pOwor
CisgICAgYXV0byByZXN1bHQgPSBGaWxlU3lzdGVtOjp0cnVuY2F0ZUZpbGUoaGFuZGxlLCBzaXpl
KTsKKyAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgcmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I6OlVua25vd247CisKKyAgICByZXR1cm4gc3RkOjpudWxsb3B0OworfQorCitzdGQ6Om9wdGlv
bmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpmbHVz
aChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFu
ZGxlSWRlbnRpZmllcikKK3sKKyAgICBpZiAoIW1fbWFuYWdlcikKKyAgICAgICAgcmV0dXJuIEZp
bGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd247CisKKyAgICBpZiAoIW1fYWN0aXZlU3luY0Fj
Y2Vzc0hhbmRsZSB8fCBtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUudmFsdWUoKSAhPSBhY2Nlc3NI
YW5kbGVJZGVudGlmaWVyKQorICAgICAgICByZXR1cm4gRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6
VW5rbm93bjsKKworICAgIGF1dG8gaGFuZGxlID0gRmlsZVN5c3RlbTo6b3BlbkZpbGUobV9wYXRo
LCBGaWxlU3lzdGVtOjpGaWxlT3Blbk1vZGU6OlJlYWRXcml0ZSk7CisgICAgYXV0byBjbG9zZUZp
bGVTY29wZSA9IG1ha2VTY29wZUV4aXQoWyZdIHsKKyAgICAgICAgRmlsZVN5c3RlbTo6Y2xvc2VG
aWxlKGhhbmRsZSk7CisgICAgfSk7CisKKyAgICBhdXRvIHJlc3VsdCA9IEZpbGVTeXN0ZW06OmZs
dXNoRmlsZShoYW5kbGUpOworICAgIGlmICghcmVzdWx0KQorICAgICAgICByZXR1cm4gRmlsZVN5
c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bjsKKworICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cit9
CisKK3N0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3Jh
Z2VIYW5kbGU6OmNsb3NlKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRp
ZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKQoreworICAgIGlmICghbV9tYW5hZ2VyKQorICAg
ICAgICByZXR1cm4gRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bjsKKworICAgIGlmICgh
bV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlIHx8IG1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZS52YWx1
ZSgpICE9IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpCisgICAgICAgIHJldHVybiBGaWxlU3lzdGVt
U3RvcmFnZUVycm9yOjpVbmtub3duOworCisgICAgbV9tYW5hZ2VyLT5yZWxlYXNlTG9ja0ZvckZp
bGUobV9wYXRoLCBtX2lkZW50aWZpZXIpOworICAgIG1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSA9
IHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaAppbmRleCA4Nzk5MDkwN2Q5
Yjg5YTUyM2Y3ZmYxZjU1MDcwYTU3MDY0MGFiM2IyLi5lNDdlZDNhMTZlZTk1YWIxZDE0OTkzOGQx
OTdmNjQ2M2Q5NzQ5MDE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaApAQCAtMjcsNiAr
MjcsNyBAQAogCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDksNiArNTAsMTIgQEAgcHVibGljOgogICAgIHN0ZDo6
b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVtb3ZlRW50cnkoY29uc3QgU3RyaW5n
JiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5KTsKICAgICBFeHBlY3RlZDxWZWN0b3I8U3Ry
aW5nPiwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzb2x2ZShXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllcik7CiAKKyAgICBFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGNyZWF0ZVN5
bmNBY2Nlc3NIYW5kbGUoKTsKKyAgICBFeHBlY3RlZDx1aW50NjRfdCwgRmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvcj4gZ2V0U2l6ZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50
aWZpZXIpOworICAgIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gdHJ1bmNh
dGUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1aW50NjRf
dCBzaXplKTsKKyAgICBzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGZsdXNo
KFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcik7CisgICAgc3Rk
OjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBjbG9zZShXZWJDb3JlOjpGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpOworCiBwcml2YXRlOgogICAgIEV4cGVjdGVk
PFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yPiByZXF1ZXN0Q3JlYXRlSGFuZGxlKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQsIFR5cGUs
IFN0cmluZyYmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnkpOwogCkBAIC01Nyw2ICs2NCw3
IEBAIHByaXZhdGU6CiAgICAgVHlwZSBtX3R5cGU7CiAgICAgU3RyaW5nIG1fcGF0aDsKICAgICBT
dHJpbmcgbV9uYW1lOworICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyPiBtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGU7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5jcHAKaW5k
ZXggMWI3YTUxYTJmNjg4NDE1YzM5NmI1YjQ4ZmRjMDVmOTk1ZmM2ZDNkZS4uOTQ4ZWViN2MxNzE1
NWExMzczODBkN2JmNjgyMDQxMjg3NGE1YjdjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFu
YWdlci5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3IuaCIKICNpbmNsdWRlICJGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5LmgiCisj
aW5jbHVkZSA8d3RmL1Njb3BlLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC04NywxNSAr
ODgsMjEgQEAgdm9pZCBGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXI6OmNvbm5lY3Rpb25DbG9zZWQo
SVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCBjb25uZWMKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6
OmlzTWFpbigpKTsKIAotICAgIGF1dG8gaGFuZGxlcyA9IG1faGFuZGxlc0J5Q29ubmVjdGlvbi5m
aW5kKGNvbm5lY3Rpb24pOwotICAgIGlmIChoYW5kbGVzID09IG1faGFuZGxlc0J5Q29ubmVjdGlv
bi5lbmQoKSkKKyAgICBhdXRvIGNvbm5lY3Rpb25IYW5kbGVzID0gbV9oYW5kbGVzQnlDb25uZWN0
aW9uLmZpbmQoY29ubmVjdGlvbik7CisgICAgaWYgKGNvbm5lY3Rpb25IYW5kbGVzID09IG1faGFu
ZGxlc0J5Q29ubmVjdGlvbi5lbmQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZm9yIChhdXRv
IGhhbmRsZUlkZW50aWZpZXIgOiBoYW5kbGVzLT52YWx1ZSkgewotICAgICAgICBhdXRvIGhhbmRs
ZSA9IG1faGFuZGxlcy50YWtlKGhhbmRsZUlkZW50aWZpZXIpOwotICAgICAgICBtX3JlZ2lzdHJ5
LnVucmVnaXN0ZXJIYW5kbGUoaGFuZGxlSWRlbnRpZmllcik7CisgICAgYXV0byBpZGVudGlmaWVy
cyA9IGNvbm5lY3Rpb25IYW5kbGVzLT52YWx1ZTsKKyAgICBmb3IgKGF1dG8gaWRlbnRpZmllciA6
IGlkZW50aWZpZXJzKSB7CisgICAgICAgIGF1dG8gaGFuZGxlID0gbV9oYW5kbGVzLnRha2UoaWRl
bnRpZmllcik7CisgICAgICAgIG1fcmVnaXN0cnkudW5yZWdpc3RlckhhbmRsZShpZGVudGlmaWVy
KTsKICAgICB9Ci0gICAgbV9oYW5kbGVzQnlDb25uZWN0aW9uLnJlbW92ZShoYW5kbGVzKTsKKwor
ICAgIG1fbG9ja01hcC5yZW1vdmVJZihbJmlkZW50aWZpZXJzXShhdXRvJiBlbnRyeSkgeworICAg
ICAgICByZXR1cm4gaWRlbnRpZmllcnMuY29udGFpbnMoZW50cnkudmFsdWUpOworICAgIH0pOwor
CisgICAgbV9oYW5kbGVzQnlDb25uZWN0aW9uLnJlbW92ZShjb25uZWN0aW9uSGFuZGxlcyk7CiB9
CiAKIEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lz
dGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXI6OmdldERpcmVjdG9yeShJ
UEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEIGNvbm5lY3Rpb24pCkBAIC0xMDUsNCArMTEyLDIzIEBA
IEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVt
U3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtCiAgICAgcmV0dXJuIGNyZWF0ZUhhbmRsZShjb25uZWN0
aW9uLCBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6VHlwZTo6RGlyZWN0b3J5LCBTdHJpbmcgeyBt
X3BhdGggfSwgeyB9LCB0cnVlKTsKIH0KIAorYm9vbCBGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXI6
OmFjcXVpcmVMb2NrRm9yRmlsZShjb25zdCBTdHJpbmcmIHBhdGgsIFdlYkNvcmU6OkZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgaWYgKG1fbG9ja01hcC5jb250
YWlucyhwYXRoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgbV9sb2NrTWFwLmFkZChw
YXRoLCBpZGVudGlmaWVyKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBGaWxlU3lzdGVt
U3RvcmFnZU1hbmFnZXI6OnJlbGVhc2VMb2NrRm9yRmlsZShjb25zdCBTdHJpbmcmIHBhdGgsIFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgaWYg
KGF1dG8gbG9ja2VkQnlJZGVudGlmaWVyID0gbV9sb2NrTWFwLmdldChwYXRoKTsgbG9ja2VkQnlJ
ZGVudGlmaWVyID09IGlkZW50aWZpZXIpIHsKKyAgICAgICAgbV9sb2NrTWFwLnJlbW92ZShwYXRo
KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuaAppbmRl
eCA4YjQzOGIyZTkzZGY0YTg0NDdjM2I3NzQwYmM1NGM4N2ZjYTQzMTlmLi4xYWViYTlkYWY3OTY4
YzY4ZDhmZThiM2JlN2I2NzU1MjgzZDc2MTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmgKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdl
ci5oCkBAIC00MywxMiArNDMsMTUgQEAgcHVibGljOgogICAgIGNvbnN0IFN0cmluZyYgZ2V0UGF0
aChXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcik7CiAgICAgdm9pZCBjb25uZWN0
aW9uQ2xvc2VkKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQpOwogICAgIEV4cGVjdGVkPFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBn
ZXREaXJlY3RvcnkoSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCk7CisgICAgYm9vbCBhY3F1aXJl
TG9ja0ZvckZpbGUoY29uc3QgU3RyaW5nJiBwYXRoLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllcik7CisgICAgYm9vbCByZWxlYXNlTG9ja0ZvckZpbGUoY29uc3QgU3RyaW5nJiBw
YXRoLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcik7CiAKIHByaXZhdGU6CiAg
ICAgU3RyaW5nIG1fcGF0aDsKICAgICBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5JiBt
X3JlZ2lzdHJ5OwogICAgIEhhc2hNYXA8SVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCwgSGFzaFNl
dDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcj4+IG1faGFuZGxlc0J5Q29ubmVj
dGlvbjsKICAgICBIYXNoTWFwPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBz
dGQ6OnVuaXF1ZV9wdHI8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU+PiBtX2hhbmRsZXM7CisgICAg
SGFzaE1hcDxTdHJpbmcsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyPiBtX2xv
Y2tNYXA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdl
ci5jcHAKaW5kZXggNjdhZWJhNTIwNmE2NjJjNjFkOWIwZTU2ZDU1OTUwOWNiMTJhNTAyNS4uMzY4
NjE3NDI4MTgwZDc4NDZiMmQ2MmYwNjBlOTllNWRjN2E3ZGQ2MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdl
TWFuYWdlci5jcHAKQEAgLTIyNiw1ICsyMjYsNjAgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFn
ZXI6OnJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmkK
ICAgICBjb21wbGV0aW9uSGFuZGxlcihoYW5kbGUtPnJlc29sdmUodGFyZ2V0SWRlbnRpZmllcikp
OwogfQogCit2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRs
ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQoreworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgYXV0byBoYW5k
bGUgPSBtX2ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnktPmdldEhhbmRsZShpZGVudGlm
aWVyKTsKKyAgICBpZiAoIWhhbmRsZSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVy
KG1ha2VVbmV4cGVjdGVkKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24pKTsKKworICAg
IGNvbXBsZXRpb25IYW5kbGVyKGhhbmRsZS0+Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpKTsKK30K
Kwordm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmdldFNpemVGb3JBY2Nlc3NIYW5kbGUoV2Vi
Q29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8dWludDY0X3QsIEZpbGVTeXN0ZW1TdG9y
YWdlRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBBU1NFUlQoIVJ1bkxvb3A6
OmlzTWFpbigpKTsKKworICAgIGF1dG8gaGFuZGxlID0gbV9maWxlU3lzdGVtU3RvcmFnZUhhbmRs
ZVJlZ2lzdHJ5LT5nZXRIYW5kbGUoaWRlbnRpZmllcik7CisgICAgaWYgKCFoYW5kbGUpCisgICAg
ICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZChGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yOjpVbmtub3duKSk7CisKKyAgICBjb21wbGV0aW9uSGFuZGxlcihoYW5kbGUtPmdl
dFNpemUoYWNjZXNzSGFuZGxlSWRlbnRpZmllcikpOworfQorCit2b2lkIE5ldHdvcmtTdG9yYWdl
TWFuYWdlcjo6dHJ1bmNhdGVGb3JBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHVpbnQ2NF90IHNpemUsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+
JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7
CisKKyAgICBhdXRvIGhhbmRsZSA9IG1fZmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeS0+
Z2V0SGFuZGxlKGlkZW50aWZpZXIpOworICAgIGlmICghaGFuZGxlKQorICAgICAgICByZXR1cm4g
Y29tcGxldGlvbkhhbmRsZXIoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bik7CisKKyAg
ICBjb21wbGV0aW9uSGFuZGxlcihoYW5kbGUtPnRydW5jYXRlKGFjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIsIHNpemUpKTsKK30KKwordm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmZsdXNoRm9yQWNj
ZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIs
IFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8RmlsZVN5
c3RlbVN0b3JhZ2VFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIEFTU0VSVCgh
UnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgYXV0byBoYW5kbGUgPSBtX2ZpbGVTeXN0ZW1TdG9y
YWdlSGFuZGxlUmVnaXN0cnktPmdldEhhbmRsZShpZGVudGlmaWVyKTsKKyAgICBpZiAoIWhhbmRs
ZSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKEZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I6OlVua25vd24pOworCisgICAgY29tcGxldGlvbkhhbmRsZXIoaGFuZGxlLT5mbHVzaChhY2Nl
c3NIYW5kbGVJZGVudGlmaWVyKSk7Cit9CisKK3ZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpj
bG9zZUFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNj
ZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFs
PEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBB
U1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAgIGF1dG8gaGFuZGxlID0gbV9maWxlU3lz
dGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5LT5nZXRIYW5kbGUoaWRlbnRpZmllcik7CisgICAgaWYg
KCFoYW5kbGUpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yOjpVbmtub3duKTsKKworICAgIGNvbXBsZXRpb25IYW5kbGVyKGhhbmRsZS0+Y2xv
c2UoYWNjZXNzSGFuZGxlSWRlbnRpZmllcikpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdv
cmtTdG9yYWdlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdl
L05ldHdvcmtTdG9yYWdlTWFuYWdlci5oCmluZGV4IDFiODEwZGY3OGQ3M2QyZmYwOWU4NGRlMmNj
YjIyYmEwNjE4MDExYzguLmE4MTg4NTFmZjE0NTM4NjhhNzRkMTc2ZmI2Y2IyOGYyMWFiMzIzMWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3Jr
U3RvcmFnZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3Jh
Z2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJP
cmlnaW5TdG9yYWdlTWFuYWdlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ2xpZW50T3JpZ2luLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllci5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLmg+CiAjaW5j
bHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC02OSw2ICs3
MCwxMSBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0RGlyZWN0b3J5SGFuZGxlKElQQzo6Q29ubmVj
dGlvbiYsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBTdHJpbmcmJiBuYW1l
LCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVk
PFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yPik+JiYpOwogICAgIHZvaWQgcmVtb3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I+KT4mJik7CiAgICAgdm9pZCByZXNvbHZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJv
cj4pPiYmKTsKKyAgICB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2Vi
Q29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yPik+JiYpOworICAgIHZvaWQgZ2V0U2l6ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPHVpbnQ2
NF90LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOworICAgIHZvaWQgdHJ1bmNhdGVGb3JB
Y2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6
OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+
KT4mJik7CisgICAgdm9pZCBmbHVzaEZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcj4pPiYmKTsKKyAgICB2b2lkIGNsb3NlQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxGaWxl
U3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwogCiAgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9u
SUQ7CiAgICAgUmVmPFdvcmtRdWV1ZT4gbV9xdWV1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VN
YW5hZ2VyLm1lc3NhZ2VzLmluCmluZGV4IDYyZTc0MDNjYmI3MDBhZDk2YmJlYmUwZmViODIwNWM4
MTYyMjRmZjcuLjRmZWEyNzY1ZmQ5MmE5ODA2MGNkMDQwMDYyYzVlOTQ1NWM4MTlmYzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFn
ZU1hbmFnZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMzIsNCArMzIsMTAg
QEAKICAgICBHZXREaXJlY3RvcnlIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnkpIC0+
IChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViS2l0OjpG
aWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jIFdhbnRzQ29ubmVjdGlvbgogICAg
IFJlbW92ZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIFN0cmluZyBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5KSAtPiAoc3RkOjpvcHRpb25h
bDxXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKICAgICBSZXNv
bHZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIHRhcmdldElkZW50aWZpZXIpIC0+IChFeHBl
Y3RlZDxWZWN0b3I8U3RyaW5nPiwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1
bHQpIEFzeW5jCisKKyAgICBDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpIC0+IChFeHBlY3RlZDxXZWJDb3JlOjpGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdlYktpdDo6RmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvcj4gcmVzdWx0KSBBc3luYworICAgIEdldFNpemVGb3JBY2Nlc3NIYW5kbGUoV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpIC0+
IChFeHBlY3RlZDx1aW50NjRfdCwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1
bHQpIEFzeW5jCisgICAgVHJ1bmNhdGVGb3JBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHVpbnQ2NF90IHNpemUp
IC0+IChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0
KSBBc3luYworICAgIEZsdXNoRm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSAtPiAoc3RkOjpvcHRpb25hbDxX
ZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKKyAgICBDbG9zZUFj
Y2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVy
LCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFu
ZGxlSWRlbnRpZmllcikgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFn
ZUVycm9yPiByZXN1bHQpIEFzeW5jCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Njcmlw
dHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNz
YWdlcy5weQppbmRleCBlZDk0YTNlZTU2NjhhMzQ4YmM3NmFkYmQ0MmI2NTAwNzFkMWI5NTFhLi41
OTZiM2ZhYjY1ODY2YmRlZjU4MTI4MGQ5MTE2MjBjMDc0ZjY3ZWYxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTI4Miw2ICsyODIsNyBAQCBkZWYgdHlwZXNf
dGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlZCgpOgogICAgICAgICAnV2ViQ29yZTo6RHJh
Z0FwcGxpY2F0aW9uRmxhZ3MnLAogICAgICAgICAnV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyJywK
ICAgICAgICAgJ1dlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyJywKKyAgICAgICAg
J1dlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcicsCiAgICAgICAg
ICdXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0R0xBdHRyaWJ1dGVzJywKICAgICAgICAgJ1dlYkNvcmU6OkltYWdlRGVjb2RlcklkZW50
aWZpZXInLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNw
cAppbmRleCBiMDU0YzkyMzhiZGQyZmNlYzgxMjliMDMwNmI1M2JiZmIxYzdkZjkzLi5mYjczYTg5
NTJlMDljZmE1ZDA0ZTMxZTk1ZTQzYzQ3YzM4NzBkNmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcApAQCAtNjcsNyArNjcsNyBAQCB2b2lkIFdl
YkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Z2V0RmlsZUhhbmRsZShXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbgogCiAgICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6R2V0RmlsZUhhbmRsZShpZGVudGlmaWVy
LCBuYW1lLCBjcmVhdGVJZk5lY2Vzc2FyeSksIFtuYW1lLCBjb21wbGV0aW9uSGFuZGxlciA9IFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAg
IGlmICghcmVzdWx0KQotICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNv
cmU6OkV4Y2VwdGlvbiB7IGNvbnZlcnRUb0V4Y2VwdGlvbkNvZGUocmVzdWx0LmVycm9yKCkpIH0p
OworICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGNvbnZlcnRUb0V4Y2VwdGlv
bk9yKHJlc3VsdC5lcnJvcigpKS5yZWxlYXNlRXhjZXB0aW9uKCkpOwogCiAgICAgICAgIGF1dG8g
aWRlbnRpZmllciA9IHJlc3VsdC52YWx1ZSgpOwogICAgICAgICBpZiAoIWlkZW50aWZpZXIuaXNW
YWxpZCgpKQpAQCAtODQsNyArODQsNyBAQCB2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbjo6Z2V0RGlyZWN0b3J5SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbAogCiAgICAg
bV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdl
TWFuYWdlcjo6R2V0RGlyZWN0b3J5SGFuZGxlKGlkZW50aWZpZXIsIG5hbWUsIGNyZWF0ZUlmTmVj
ZXNzYXJ5KSwgW25hbWUsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcildKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFyZXN1bHQpCi0gICAg
ICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgY29u
dmVydFRvRXhjZXB0aW9uQ29kZShyZXN1bHQuZXJyb3IoKSkgfSk7CisgICAgICAgICAgICByZXR1
cm4gY29tcGxldGlvbkhhbmRsZXIoY29udmVydFRvRXhjZXB0aW9uT3IocmVzdWx0LmVycm9yKCkp
LnJlbGVhc2VFeGNlcHRpb24oKSk7CiAKICAgICAgICAgYXV0byBpZGVudGlmaWVyID0gcmVzdWx0
LnZhbHVlKCk7CiAgICAgICAgIGlmICghaWRlbnRpZmllci5pc1ZhbGlkKCkpCkBAIC05NCwxNiAr
OTQsMTMgQEAgdm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldERpcmVjdG9y
eUhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGwKICAgICB9KTsKIH0KIAotdm9pZCBXZWJG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnJlbW92ZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBk
ZWxldGVSZWN1cnNpdmVseSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpS
ZW1vdmVFbnRyeUNhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYkZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbjo6cmVtb3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJl
Y3Vyc2l2ZWx5LCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxs
YmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmICghbV9jb25uZWN0aW9uKQogICAg
ICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29y
ZTo6VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0IiB9KTsKIAogICAgIG1fY29ubmVj
dGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6
OlJlbW92ZUVudHJ5KGlkZW50aWZpZXIsIG5hbWUsIGRlbGV0ZVJlY3Vyc2l2ZWx5KSwgW2NvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8gZXJyb3IpIG11
dGFibGUgewotICAgICAgICBpZiAoZXJyb3IpCi0gICAgICAgICAgICByZXR1cm4gY29tcGxldGlv
bkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgY29udmVydFRvRXhjZXB0aW9uQ29kZShlcnJv
ci52YWx1ZSgpKSB9KTsKLQotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0pOworICAgICAg
ICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoY29udmVydFRvRXhjZXB0aW9uT3IoZXJyb3IpKTsK
ICAgICB9KTsKIH0KIApAQCAtMTE0LDEwICsxMTEsNjYgQEAgdm9pZCBXZWJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb246OnJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIKIAogICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3
b3JrU3RvcmFnZU1hbmFnZXI6OlJlc29sdmUoaWRlbnRpZmllciwgb3RoZXJJZGVudGlmaWVyKSwg
W2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8gcmVz
dWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFyZXN1bHQpCi0gICAgICAgICAgICByZXR1cm4g
Y29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgY29udmVydFRvRXhjZXB0aW9u
Q29kZShyZXN1bHQuZXJyb3IoKSkgfSk7CisgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhh
bmRsZXIoY29udmVydFRvRXhjZXB0aW9uT3IocmVzdWx0LmVycm9yKCkpLnJlbGVhc2VFeGNlcHRp
b24oKSk7CisKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXN1bHQudmFsdWUo
KSkpOworICAgIH0pOworfQorCit2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6
Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlm
aWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEFjY2Vzc0hhbmRs
ZUNhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24p
CisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBX
ZWJDb3JlOjpVbmtub3duRXJyb3IsICJDb25uZWN0aW9uIGlzIGxvc3QiIH0pOworCisgICAgbV9j
b25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFu
YWdlcjo6Q3JlYXRlU3luY0FjY2Vzc0hhbmRsZShpZGVudGlmaWVyKSwgW2NvbXBsZXRpb25IYW5k
bGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsK
KyAgICAgICAgaWYgKCFyZXN1bHQpCisgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRs
ZXIoY29udmVydFRvRXhjZXB0aW9uT3IocmVzdWx0LmVycm9yKCkpLnJlbGVhc2VFeGNlcHRpb24o
KSk7CiAKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXN1bHQudmFsdWUoKSkp
OwogICAgIH0pOwogfQogCit2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Z2V0
U2l6ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJD
b3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgSW50ZWdlckNhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYg
KCFtX2Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3Jl
OjpFeGNlcHRpb24geyBXZWJDb3JlOjpVbmtub3duRXJyb3IsICJDb25uZWN0aW9uIGlzIGxvc3Qi
IH0pOworCisgICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5l
dHdvcmtTdG9yYWdlTWFuYWdlcjo6R2V0U2l6ZUZvckFjY2Vzc0hhbmRsZShpZGVudGlmaWVyLCBh
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyKSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcildKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCFyZXN1
bHQpCisgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoY29udmVydFRvRXhjZXB0
aW9uT3IocmVzdWx0LmVycm9yKCkpLnJlbGVhc2VFeGNlcHRpb24oKSk7CisKKyAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIocmVzdWx0LnZhbHVlKCkpOworICAgIH0pOworfQorCit2b2lkIFdlYkZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6dHJ1bmNhdGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHVpbnQ2NF90IHNpemUsIFZv
aWRDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmICghbV9jb25uZWN0aW9u
KQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsg
V2ViQ29yZTo6VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0IiB9KTsKKworICAgIG1f
Y29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1h
bmFnZXI6OlRydW5jYXRlRm9yQWNjZXNzSGFuZGxlKGlkZW50aWZpZXIsIGFjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIsIHNpemUpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKV0oYXV0byBlcnJvcikgbXV0YWJsZSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KGNvbnZlcnRUb0V4Y2VwdGlvbk9yKGVycm9yKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpmbHVzaChXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgVm9pZENhbGxiYWNrJiYgY29tcGxl
dGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVybiBj
b21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpVbmtub3duRXJy
b3IsICJDb25uZWN0aW9uIGlzIGxvc3QiIH0pOworCisgICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0
aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Rmx1c2hGb3JBY2Nl
c3NIYW5kbGUoaWRlbnRpZmllciwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciksIFtjb21wbGV0aW9u
SGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIGVycm9yKSBtdXRhYmxl
IHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY29udmVydFRvRXhjZXB0aW9uT3IoZXJyb3Ip
KTsKKyAgICB9KTsKK30KKwordm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNs
b3NlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNv
cmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyLCBWb2lkQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoIW1f
Y29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4
Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5lY3Rpb24gaXMgbG9zdCIgfSk7
CisKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29y
a1N0b3JhZ2VNYW5hZ2VyOjpDbG9zZUFjY2Vzc0hhbmRsZShpZGVudGlmaWVyLCBhY2Nlc3NIYW5k
bGVJZGVudGlmaWVyKSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcildKGF1dG8gZXJyb3IpIG11dGFibGUgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihj
b252ZXJ0VG9FeGNlcHRpb25PcihlcnJvcikpOworICAgIH0pOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaApp
bmRleCBiNjAxYmU2NDM1M2RhZmM3NzdjNmJjZTQyYjFlOWYyOTEzOTIzMGMyLi4wMjg0YzliZjM4
ODJiMmNmNGMxYTY2MzNhZmVmNDI3ZTZiYTc5OTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCkBAIC01MSw5ICs1MSwxNSBAQCBwcml2YXRlOgogICAg
IHZvaWQgaXNTYW1lRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb246OlNhbWVFbnRyeUNhbGxiYWNrJiYpOwogICAgIHZvaWQgZ2V0RmlsZUhh
bmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBu
YW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OkdldEhhbmRsZUNhbGxiYWNrJiYpOwogICAgIHZvaWQgZ2V0RGlyZWN0b3J5SGFu
ZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5h
bWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbjo6R2V0SGFuZGxlQ2FsbGJhY2smJik7Ci0gICAgdm9pZCByZW1vdmVFbnRyeShXZWJD
b3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29s
IGRlbGV0ZVJlY3Vyc2l2ZWx5LCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246
OlJlbW92ZUVudHJ5Q2FsbGJhY2smJik7CisgICAgdm9pZCByZW1vdmVFbnRyeShXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0
ZVJlY3Vyc2l2ZWx5LCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRD
YWxsYmFjayYmKTsKICAgICB2b2lkIHJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlJlc29sdmVDYWxsYmFjayYmKTsKIAorICAgIHZv
aWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2Vi
Q29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRBY2Nlc3NIYW5kbGVDYWxsYmFj
ayYmKSBmaW5hbDsKKyAgICB2b2lkIGdldFNpemUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIs
IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uOjpJbnRlZ2VyQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCB0
cnVuY2F0ZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXplLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIGZsdXNoKEZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Vm9pZENhbGxiYWNrJiYp
IGZpbmFsOworICAgIHZvaWQgY2xvc2UoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJikgZmluYWw7CisKICAgICBSZWZQdHI8SVBDOjpD
b25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlN0b3JhZ2VDb25uZWN0aW9u
LmNwcAppbmRleCAyYWNiNWZhYWYzZjQ2ZDdmODRkYmJiYjg3MzMyZDMzNjU0OTAzNzZkLi5lMDU2
OThmMzRhZjMxNDEwMTJlM2FmZDI2ZjE2ZWViYjBhZjEyMjRiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3RvcmFnZUNvbm5lY3Rpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9yYWdl
Q29ubmVjdGlvbi5jcHAKQEAgLTU2LDcgKzU2LDcgQEAgdm9pZCBXZWJTdG9yYWdlQ29ubmVjdGlv
bjo6ZmlsZVN5c3RlbUdldERpcmVjdG9yeShjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG8K
ICAgICBhdXRvJiBjb25uZWN0aW9uID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpOwogICAgIGNvbm5lY3Rpb24uc2Vu
ZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OkZpbGVTeXN0
ZW1HZXREaXJlY3Rvcnkob3JpZ2luKSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcildKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFyZXN1
bHQpCi0gICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0
aW9uIHsgY29udmVydFRvRXhjZXB0aW9uQ29kZShyZXN1bHQuZXJyb3IoKSkgfSk7CisgICAgICAg
ICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoY29udmVydFRvRXhjZXB0aW9uT3IocmVzdWx0
LmVycm9yKCkpLnJlbGVhc2VFeGNlcHRpb24oKSk7CiAKICAgICAgICAgYXV0byBpZGVudGlmaWVy
ID0gcmVzdWx0LnZhbHVlKCk7CiAgICAgICAgIGlmICghaWRlbnRpZmllci5pc1ZhbGlkKCkpCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggYjRiNjc2ODVmY2IwMWJiN2U1NWVlZDIwOTBhZjc1NGIzODkwNGNjMi4uNWQ4MDczZmU5
YThmMGM2Y2RlNmQ1NTc0NzA0NWNiZjNlNDc2YjUzZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisy
MDIxLTEwLTA1ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEFk
ZCBzdXBwb3J0IGZvciBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMTg1CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS84Mzg0Nzg1OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHN0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9yZXNvdXJjZXMvc3luYy1hY2Nl
c3MtaGFuZGxlLWJhc2ljcy5qczogQWRkZWQuCisgICAgICAgIChmaW5pc2hUZXN0KToKKyAgICAg
ICAgKGdldERpcmVjdG9yeSk6CisgICAgICAgICogc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5
bmMtYWNjZXNzLWhhbmRsZS1iYXNpY3Mtd29ya2VyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1iYXNpY3Mt
d29ya2VyLmh0bWw6IEFkZGVkLgorCiAyMDIxLTEwLTA1ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5m
cmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyODMzMzUpOiBNb21lbnR1
bSBzY3JvbGxpbmcgaXMgbm8gbG9uZ2VyIGxvY2tlZCB0byBhbiBheGlzCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZwppbmRleCA3YzRjZjdiNGE5ZTFhM2ZlZGU0YTFmMDU3MDczZmIwZWZlYzg1
ZWU2Li4yNWExZjQ0MjNmOWExMTkyNjQxMjcyODA2YzFiZDc5MjVlYmM3ODYxIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0xMC0wNSAgU2lodWkg
TGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzMTE4NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODM4NDc4NTk+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvZmlsZS1zeXN0ZW0tYWNjZXNzL3NhbmRib3hlZF9GaWxlU3lzdGVtRmls
ZUhhbmRsZS1zeW5jLWFjY2Vzcy1oYW5kbGUtbG9jay5odHRwcy50ZW50YXRpdmUud29ya2VyLWV4
cGVjdGVkLnR4dDoKKwogMjAyMS0xMC0wNSAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgW2Nzcy1wb3NpdGlvbi1zdGlja3ldIHNjcm9sbEludG9WaWV3
IHNob3VsZCBub3QgdGFrZSBpbnRvIGFjY291bnQgc3RpY2t5IHBvc2l0aW9uaW5nIG9mZnNldHMK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmlsZS1zeXN0ZW0tYWNjZXNzL3NhbmRib3hlZF9GaWxlU3lzdGVtRmlsZUhhbmRsZS1zeW5jLWFj
Y2Vzcy1oYW5kbGUtbG9jay5odHRwcy50ZW50YXRpdmUud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmlsZS1zeXN0ZW0tYWNj
ZXNzL3NhbmRib3hlZF9GaWxlU3lzdGVtRmlsZUhhbmRsZS1zeW5jLWFjY2Vzcy1oYW5kbGUtbG9j
ay5odHRwcy50ZW50YXRpdmUud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCBiNDYyOGE3ZGYyMmRm
ZTg4YTdiMzcxMmZmYjM2N2RmY2NlZWU4NzA0Li43ZGFkYzJkNGYwNmQ4NDRhMjEyZjY0MDRjMGQx
YWI5ZjU2MzcwY2I5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZpbGUtc3lzdGVtLWFjY2Vzcy9zYW5kYm94ZWRfRmlsZVN5c3RlbUZpbGVI
YW5kbGUtc3luYy1hY2Nlc3MtaGFuZGxlLWxvY2suaHR0cHMudGVudGF0aXZlLndvcmtlci1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9maWxlLXN5c3RlbS1hY2Nlc3Mvc2FuZGJveGVkX0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLXN5bmMt
YWNjZXNzLWhhbmRsZS1sb2NrLmh0dHBzLnRlbnRhdGl2ZS53b3JrZXItZXhwZWN0ZWQudHh0CkBA
IC0xLDQgKzEsNCBAQAogCi1GQUlMIFRoZXJlIGNhbiBvbmx5IGJlIG9uZSBvcGVuIGFjY2VzcyBo
YW5kbGUgYXQgYW55IGdpdmVuIHRpbWUgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9u
IHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBmaWxlSGFuZGxlLmNyZWF0ZVN5bmNBY2Nl
c3NIYW5kbGUgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnZmlsZUhhbmRsZS5jcmVhdGVTeW5jQWNj
ZXNzSGFuZGxlKCknLCAnZmlsZUhhbmRsZS5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlJyBpcyB1bmRl
ZmluZWQpIgotRkFJTCBBbiBhY2Nlc3MgaGFuZGxlIGZyb20gb25lIGZpbGUgZG9lcyBub3QgaW50
ZXJmZXJlIHdpdGggdGhlIGNyZWF0aW9uIG9mIGFuIGFjY2VzcyBoYW5kbGUgb24gYW5vdGhlciBm
aWxlIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3Qg
IlR5cGVFcnJvcjogZm9vRmlsZUhhbmRsZS5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlIGlzIG5vdCBh
IGZ1bmN0aW9uLiAoSW4gJ2Zvb0ZpbGVIYW5kbGUuY3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpJywg
J2Zvb0ZpbGVIYW5kbGUuY3JlYXRlU3luY0FjY2Vzc0hhbmRsZScgaXMgdW5kZWZpbmVkKSIKK1BB
U1MgVGhlcmUgY2FuIG9ubHkgYmUgb25lIG9wZW4gYWNjZXNzIGhhbmRsZSBhdCBhbnkgZ2l2ZW4g
dGltZQorUEFTUyBBbiBhY2Nlc3MgaGFuZGxlIGZyb20gb25lIGZpbGUgZG9lcyBub3QgaW50ZXJm
ZXJlIHdpdGggdGhlIGNyZWF0aW9uIG9mIGFuIGFjY2VzcyBoYW5kbGUgb24gYW5vdGhlciBmaWxl
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9yZXNv
dXJjZXMvc3luYy1hY2Nlc3MtaGFuZGxlLWJhc2ljcy5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
ZmlsZXN5c3RlbWFjY2Vzcy9yZXNvdXJjZXMvc3luYy1hY2Nlc3MtaGFuZGxlLWJhc2ljcy5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45NjcxMjVhNDZkYzZiNmVjM2ZjZmVmMTM5NGE4NjA4Yzg2NTI4NzJjCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3Jlc291
cmNlcy9zeW5jLWFjY2Vzcy1oYW5kbGUtYmFzaWNzLmpzCkBAIC0wLDAgKzEsODEgQEAKK2lmICh0
aGlzLmltcG9ydFNjcmlwdHMpIHsKKyAgICBpbXBvcnRTY3JpcHRzKCcuLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC5qcycpOworfQorCitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNrcyBiYXNp
YyBmdW50aW9uYWxpdGllcyBvZiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS4iKTsKKwordmFy
IHJvb3RIYW5kbGUsIGZpbGVIYW5kbGUsIGFjY2Vzc0hhbmRsZTEsIGFjY2Vzc0hhbmRsZTIsIGNy
ZWF0ZUVycm9yOworCitmdW5jdGlvbiBmaW5pc2hUZXN0KGVycm9yKQoreworICAgIGlmIChlcnJv
cikgeworICAgICAgICB0ZXN0RmFpbGVkKGVycm9yKTsKKyAgICB9CisgICAgZmluaXNoSlNUZXN0
KCk7Cit9CisKK2Z1bmN0aW9uIGdldERpcmVjdG9yeSgpIHsKKyAgICBuYXZpZ2F0b3Iuc3RvcmFn
ZS5nZXREaXJlY3RvcnkoKS50aGVuKChoYW5kbGUpID0+IHsKKyAgICAgICAgcm9vdEhhbmRsZSA9
IGhhbmRsZTsKKyAgICAgICAgY3JlYXRlRmlsZUhhbmRsZShyb290SGFuZGxlKTsKKyAgICB9KS5j
YXRjaCgoZXJyb3IpID0+IHsKKyAgICAgICAgZmluaXNoVGVzdChlcnJvcik7CisgICAgfSk7Cit9
CisKK2Z1bmN0aW9uIGNyZWF0ZUZpbGVIYW5kbGUoZnJvbUhhbmRsZSkgeworICAgIGZyb21IYW5k
bGUuZ2V0RmlsZUhhbmRsZSgic3luYy1hY2Nlc3MtaGFuZGxlLnR4dCIsIHsgImNyZWF0ZSIgOiB0
cnVlIH0pLnRoZW4oKGhhbmRsZSkgPT4geworICAgICAgICBmaWxlSGFuZGxlID0gaGFuZGxlOwor
ICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImZpbGVIYW5kbGUubmFtZSIsICJzeW5jLWFj
Y2Vzcy1oYW5kbGUudHh0Iik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZmlsZUhh
bmRsZS5raW5kIiwgImZpbGUiKTsKKyAgICAgICAgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShmaWxl
SGFuZGxlKTsKKyAgICB9KS5jYXRjaCgoZXJyb3IpID0+IHsKKyAgICAgICAgZmluaXNoVGVzdChl
cnJvcik7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoZnJv
bUhhbmRsZSkgeworICAgIGZyb21IYW5kbGUuY3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpLnRoZW4o
KGhhbmRsZSkgPT4geworICAgICAgICBhY2Nlc3NIYW5kbGUxID0gaGFuZGxlOworICAgICAgICBk
ZWJ1ZygiYWNjZXNzSGFuZGxlMSBpcyBjcmVhdGVkIik7CisgICAgICAgIGdldFNpemUoYWNjZXNz
SGFuZGxlMSk7CisgICAgfSkuY2F0Y2goKGVycm9yKSA9PiB7CisgICAgICAgIGZpbmlzaFRlc3Qo
ZXJyb3IpOworICAgIH0pOworfQorCitmdW5jdGlvbiBnZXRTaXplKGFjY2Vzc0hhbmRsZSkgewor
ICAgIGFjY2Vzc0hhbmRsZS5nZXRTaXplKCkudGhlbigocmVzdWx0KSA9PiB7CisgICAgICAgIHNp
emUgPSByZXN1bHQ7CisgICAgICAgIHNob3VsZEJlKCJzaXplIiwgIjAiKTsKKyAgICAgICAgY3Jl
YXRlU2Vjb25kU3luY0FjZXNzSGFuZGxlKGZpbGVIYW5kbGUpOworICAgIH0pLmNhdGNoKChlcnJv
cikgPT4geworICAgICAgICBmaW5pc2hUZXN0KGVycm9yKTsKKyAgICB9KTsKK30KKworZnVuY3Rp
b24gY3JlYXRlU2Vjb25kU3luY0FjZXNzSGFuZGxlKGZyb21IYW5kbGUpIHsKKyAgICBmcm9tSGFu
ZGxlLmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKS50aGVuKChoYW5kbGUpID0+IHsKKyAgICAgICAg
YWNjZXNzSGFuZGxlMiA9IGhhbmRsZTsKKyAgICAgICAgLy8gU2Vjb25kIGNyZWF0aW9uIHNob3Vs
ZCBzdWNjZWVkLgorICAgICAgICBkZWJ1ZygiYWNjZXNzSGFuZGxlMiBpcyBjcmVhdGVkIik7Cisg
ICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICB9KS5jYXRjaCgoZXJyb3IpID0+IHsKKyAgICAgICAg
Ly8gRmlyc3QgY3JlYXRpb24gc2hvdWxkIGZhaWwgYXMgdGhlcmUgaXMgYW4gYWN0aXZlIGhhbmRs
ZS4KKyAgICAgICAgY3JlYXRlRXJyb3IgPSBlcnJvcjsKKyAgICAgICAgZGVidWcoImFjY2Vzc0hh
bmRsZTIgY2Fubm90IGJlIGNyZWF0ZWQiKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJjcmVhdGVFcnJvci50b1N0cmluZygpIiwgIkludmFsaWRTdGF0ZUVycm9yOiBUaGUgb2JqZWN0
IGlzIGluIGFuIGludmFsaWQgc3RhdGUuIik7CisgICAgICAgIGNsb3NlKCk7CisgICAgfSk7Cit9
CisKK2Z1bmN0aW9uIGNsb3NlKCkgeworICAgIGFjY2Vzc0hhbmRsZTEuY2xvc2UoKS50aGVuKChy
ZXN1bHQpID0+IHsKKyAgICAgICAgZGVidWcoImFjY2Vzc0hhbmRsZTEgaXMgY2xvc2VkIik7Cisg
ICAgICAgIGNyZWF0ZVNlY29uZFN5bmNBY2Vzc0hhbmRsZShmaWxlSGFuZGxlKTsKKyAgICB9KS5j
YXRjaCgoZXJyb3IpID0+IHsKKyAgICAgICAgZmluaXNoVGVzdChlcnJvcik7CisgICAgfSk7Cit9
CisKK2dldERpcmVjdG9yeSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxl
c3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1iYXNpY3Mtd29ya2VyLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5k
bGUtYmFzaWNzLXdvcmtlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDc0ZjVkNzE1NTczMDdl
NGJkMTRjMTQ2YmE5M2FiZDUyZGI5YTRmNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtYmFzaWNzLXdvcmtl
ci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOCBAQAorW1dvcmtlcl0gVGhpcyB0ZXN0IGNoZWNr
cyBiYXNpYyBmdW50aW9uYWxpdGllcyBvZiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1N0YXJ0aW5nIHdvcmtlcjogcmVzb3VyY2Vz
L3N5bmMtYWNjZXNzLWhhbmRsZS1iYXNpY3MuanMKK1BBU1MgW1dvcmtlcl0gZmlsZUhhbmRsZS5u
YW1lIGlzICJzeW5jLWFjY2Vzcy1oYW5kbGUudHh0IgorUEFTUyBbV29ya2VyXSBmaWxlSGFuZGxl
LmtpbmQgaXMgImZpbGUiCitbV29ya2VyXSBhY2Nlc3NIYW5kbGUxIGlzIGNyZWF0ZWQKK1BBU1Mg
W1dvcmtlcl0gc2l6ZSBpcyAwCitbV29ya2VyXSBhY2Nlc3NIYW5kbGUyIGNhbm5vdCBiZSBjcmVh
dGVkCitQQVNTIFtXb3JrZXJdIGNyZWF0ZUVycm9yLnRvU3RyaW5nKCkgaXMgIkludmFsaWRTdGF0
ZUVycm9yOiBUaGUgb2JqZWN0IGlzIGluIGFuIGludmFsaWQgc3RhdGUuIgorW1dvcmtlcl0gYWNj
ZXNzSGFuZGxlMSBpcyBjbG9zZWQKK1tXb3JrZXJdIGFjY2Vzc0hhbmRsZTIgaXMgY3JlYXRlZAor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1o
YW5kbGUtYmFzaWNzLXdvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVt
YWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1iYXNpY3Mtd29ya2VyLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
N2ZlYzM2YTU5NjBiNGFhYTIxYTJmODBhZDExY2VkNGI3ZWNlZDlkNQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5k
bGUtYmFzaWNzLXdvcmtlci5odG1sCkBAIC0wLDAgKzEsOSBAQAorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxzY3JpcHQ+Cit3b3JrZXIgPSBzdGFydFdvcmtlcigncmVzb3VyY2VzL3N5bmMt
YWNjZXNzLWhhbmRsZS1iYXNpY3MuanMnKTs8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>
<flag name="commit-queue"
          id="464116"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440248</attachid>
            <date>2021-10-05 12:42:50 -0700</date>
            <delta_ts>2021-10-05 13:07:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231185-20211005124249.patch</filename>
            <type>text/plain</type>
            <size>98327</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGE4NDgwMmU4NjAzYjY5ZDZiNGYwOWI2
NTQyNjY5ZTQzMTU3ZjQ1N2MuLjkzZWVhNWE0YWE5YWQ4NjQ1MzBkZTYyMTI2OTJkY2E0MWY1ZjBk
Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEtMTAtMDUgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzExODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzODQ3ODU5PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNl
cy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sOgorICAgICAgICAqIHd0Zi9GaWxlU3lz
dGVtLmg6CisgICAgICAgICogd3RmL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3BwOgorICAgICAgICAo
V1RGOjpGaWxlU3lzdGVtSW1wbDo6Zmx1c2hGaWxlKToKKyAgICAgICAgKiB3dGYvcG9zaXgvRmls
ZVN5c3RlbVBPU0lYLmNwcDoKKyAgICAgICAgKFdURjo6RmlsZVN5c3RlbUltcGw6OmZsdXNoRmls
ZSk6CisgICAgICAgICogd3RmL3dpbi9GaWxlU3lzdGVtV2luLmNwcDoKKyAgICAgICAgKFdURjo6
RmlsZVN5c3RlbUltcGw6OmZsdXNoRmlsZSk6CisKIDIwMjEtMTAtMDUgIERhdmlkIEtpbHplciAg
PGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBGb2xsb3ctdXAgIzI6IFdURjo6UmV0YWlu
UHRyPD4gYWxsb3dzIGFzc2lnbm1lbnQgb2YgdHdvIHBvaW50ZXIgdHlwZXMgdGhhdCBhcmUgbm90
IGFzc2lnbmFibGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzNDNiMjc2MjZjOGMyY2NiYTY2NzUwMGJhNzgxZmIy
ZGM2MmEwMjVjLi4yYjkwYmRlZTNhNTY5ODhkZDM5OTMxMmJjYjFjNjRiNjFkNWM3YjYyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNjAgQEAKKzIwMjEtMTAtMDUgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzExODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzODQ3ODU5PgorCisgICAgICAgIElt
cGxlbWVudCBiYXNpYyBzdXBwb3J0IGZvciBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSBhcyBw
cm9wb3NhbDoKKyAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL1dJQ0cvZmlsZS1zeXN0ZW0tYWNj
ZXNzL2Jsb2IvbWFpbi9BY2Nlc3NIYW5kbGUubWQKKworICAgICAgICBGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZSBjYW4gYmUgY3JlYXRlZCB2aWEgRmlsZVN5c3RlbUZpbGVIYW5kbGUsIGFuZCBp
dCBjb21tdWljYXRlcyB3aXRoIGJhY2tlbmQgdmlhIAorICAgICAgICBGaWxlU3lzdGVtRmlsZUhh
bmRsZS4KKworICAgICAgICBUZXN0OiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nl
c3MtaGFuZGxlLWJhc2ljcy13b3JrZXIuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy5tYWtlOgorICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpnZXRTaXplKToKKyAgICAgICAgKFdlYkNv
cmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjp0cnVuY2F0ZSk6CisgICAgICAgIChXZWJDb3JlOjpG
aWxlU3lzdGVtRmlsZUhhbmRsZTo6Zmx1c2gpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3Rl
bUZpbGVIYW5kbGU6OmNsb3NlKToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbUZpbGVIYW5kbGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaWRsOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OkZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlOjp+RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OnRydW5jYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpnZXRTaXplKToKKyAgICAgICAgKFdlYkNvcmU6
OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpmbHVzaCk6CisgICAgICAgIChXZWJDb3JlOjpG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y2xvc2UpOgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmRpZENsb3NlKToKKyAgICAgICAgKiBNb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaDogQWRkZWQuCisgICAg
ICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6c2Nv
cGVDbG9zZWQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpyZW1vdmVFbnRyeSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb246OmRpZENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjb21wbGV0ZUludGVn
ZXJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OmNvbXBsZXRlVm9pZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
ckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldFNp
emUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
Ojp0cnVuY2F0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OmZsdXNoKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbjo6Y2xvc2UpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uOjpkaWRSZW1vdmVFbnRyeSk6IERlbGV0ZWQuCisgICAgICAgICog
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bi5oOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5h
bWVzLmg6CisKIDIwMjEtMTAtMDUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5j
b20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI4MzMzNSk6IE1vbWVudHVtIHNjcm9sbGluZyBp
cyBubyBsb25nZXIgbG9ja2VkIHRvIGFuIGF4aXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZjg1ZGYzZjBhZTNiOWYw
YzYzYWE3YzkxM2U4MjYyNzJmYTVmYTNlMy4uMmE2NzliOGI2ZGJhMzVkOTI1ZWRjNWMwMmIyYTkx
YTQ5ZTMwODk1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MyBAQAorMjAyMS0xMC0wNSAgU2lodWkg
TGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzMTE4NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODM4NDc4NTk+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VycmVu
dGx5IHdlIG9ubHkgYWxsb3cgb25lIG9wZW4gYWNjZXNzIGhhbmRsZSBvbiBvbmUgZmlsZS4gU2Vj
b25kIGFjY2VzcyBoYW5kbGUgY2FuIGJlIGNyZWF0ZWQgYWZ0ZXIgdGhlIGZpcnN0CisgICAgICAg
IGlzIGNsb3NlZC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvci5oOgorICAgICAgICAoV2ViS2l0Ojpjb252ZXJ0VG9FeGNlcHRpb25Pcik6
CisgICAgICAgIChXZWJLaXQ6OmNvbnZlcnRUb0V4Y2VwdGlvbkNvZGUpOiBEZWxldGVkLgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Y3JlYXRlU3luY0Fj
Y2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpn
ZXRTaXplKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OnRydW5j
YXRlKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmZsdXNoKToK
KyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmNsb3NlKToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmg6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXI6OmNvbm5lY3Rp
b25DbG9zZWQpOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXI6OmFj
cXVpcmVMb2NrRm9yRmlsZSk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlTWFu
YWdlcjo6cmVsZWFzZUxvY2tGb3JGaWxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9y
YWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1N0b3JhZ2VNYW5hZ2VyOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpnZXRTaXplRm9yQWNjZXNzSGFuZGxlKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjp0cnVuY2F0ZUZvckFjY2Vzc0hh
bmRsZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Zmx1c2hGb3JB
Y2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmNs
b3NlQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdv
cmtTdG9yYWdlTWFuYWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0
d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
L21lc3NhZ2VzLnB5OgorICAgICAgICAodHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNs
YXJlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb246OmdldEZpbGVIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldERpcmVjdG9yeUhhbmRsZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6cmVtb3ZlRW50cnkpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnJlc29sdmUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0ZVN5
bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OmdldFNpemUpOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb246OnRydW5jYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpmbHVzaCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6Y2xvc2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlN0b3JhZ2VDb25uZWN0aW9uOjpmaWxlU3lzdGVtR2V0RGlyZWN0b3J5KToKKwog
MjAyMS0xMC0wNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFk
ZCBTUEkgdG8gbGF1bmNoIGEgc2VydmljZSBzZXJ2aWNlIHdvcmtlciBpbiBhIFdLV2ViVmlldyBh
bmQgZXhwb3NlIHNlcnZpY2Ugd29ya2VyIHRvIGluamVjdGVkIGJ1bmRsZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFs
LnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBl
cmltZW50YWwueWFtbAppbmRleCA1MjVlNjAzNTJmNThlZTRhNTZlYjQ4ODBjZDA1NDZkOWMwM2Q2
ZmFkLi5iMTEyNjQ3NjA0ZmRhOWRhZGY0NDY0OTQ5ZjIxZWVhNzk5ZjI1ZTVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50
YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5j
ZXNFeHBlcmltZW50YWwueWFtbApAQCAtMjYsNiArMjYsMTggQEAKICMgVGhleSBtdXN0IGluY2x1
ZGUgYSBodW1hblJlYWRhYmxlTmFtZSBhbmQgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uLiBUaGlz
IGlzCiAjICAgdGhlIHRleHQgZXhwb3NlZCB0byB0aGUgdXNlciBmcm9tIHRoZSBXZWJLaXQgY2xp
ZW50LgogCitBY2Nlc3NIYW5kbGVFbmFibGVkOgorICB0eXBlOiBib29sCisgIGh1bWFuUmVhZGFi
bGVOYW1lOiAiQWNjZXNzSGFuZGxlIEFQSSIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAi
RW5hYmxlIEFjY2Vzc0hhbmRsZSBBUEkiCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdh
Y3k6CisgICAgICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IGZh
bHNlCisgICAgV2ViQ29yZToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisKIEFjY2Vzc2liaWxpdHlP
YmplY3RNb2RlbEVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgaHVtYW5SZWFkYWJsZU5hbWU6ICJB
Y2Nlc3NpYmlsaXR5IE9iamVjdCBNb2RlbCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Zp
bGVTeXN0ZW0uaCBiL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uaAppbmRleCBjNDUwMWQxNGE3
NDJhYTIxZmE2ZGM3YTczZjgzMDllYzZhODdmNGQ1Li5iMTA3MzcwNjk4ZTFhZDFkYTc5NGE3ZTQ2
NmNjMDA3MTJhN2Q4NjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9GaWxlU3lzdGVtLmgK
KysrIGIvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5oCkBAIC0xNTQsNiArMTU0LDcgQEAgV1RG
X0VYUE9SVF9QUklWQVRFIHZvaWQgY2xvc2VGaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSYpOwogLy8g
UmV0dXJucyB0aGUgcmVzdWx0aW5nIG9mZnNldCBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGZp
bGUgaWYgc3VjY2Vzc2Z1bCwgLTEgb3RoZXJ3aXNlLgogV1RGX0VYUE9SVF9QUklWQVRFIGxvbmcg
bG9uZyBzZWVrRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUsIGxvbmcgbG9uZyBvZmZzZXQsIEZpbGVT
ZWVrT3JpZ2luKTsKIFdURl9FWFBPUlRfUFJJVkFURSBib29sIHRydW5jYXRlRmlsZShQbGF0Zm9y
bUZpbGVIYW5kbGUsIGxvbmcgbG9uZyBvZmZzZXQpOworV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wg
Zmx1c2hGaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSk7CiAvLyBSZXR1cm5zIG51bWJlciBvZiBieXRl
cyBhY3R1YWxseSByZWFkIGlmIHN1Y2Nlc3NmdWwsIC0xIG90aGVyd2lzZS4KIFdURl9FWFBPUlRf
UFJJVkFURSBpbnQgd3JpdGVUb0ZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlLCBjb25zdCB2b2lkKiBk
YXRhLCBpbnQgbGVuZ3RoKTsKIC8vIFJldHVybnMgbnVtYmVyIG9mIGJ5dGVzIGFjdHVhbGx5IHdy
aXR0ZW4gaWYgc3VjY2Vzc2Z1bCwgLTEgb3RoZXJ3aXNlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL0ZpbGVT
eXN0ZW1HbGliLmNwcAppbmRleCA1NDYyNDRjNzA0MTA4NGNiNGI0MmU5ZjBhYWViYThhMjYyOTAz
ZmQzLi5mODEyN2YwYmEwZjQ0ZTQ5ZWYyODU5ZTE1MTgwMDhjMWIzMDQ4NDEyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcApAQCAtMjEzLDYgKzIxMywxMSBAQCBib29sIHRy
dW5jYXRlRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlLCBsb25nIGxvbmcgb2Zmc2V0KQog
ICAgIHJldHVybiBnX3NlZWthYmxlX3RydW5jYXRlKEdfU0VFS0FCTEUoZ19pb19zdHJlYW1fZ2V0
X291dHB1dF9zdHJlYW0oR19JT19TVFJFQU0oaGFuZGxlKSkpLCBvZmZzZXQsIG51bGxwdHIsIG51
bGxwdHIpOwogfQogCitib29sIGZsdXNoRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlKQor
eworICAgIHJldHVybiBnX291dHB1dF9zdHJlYW1fZmx1c2goZ19pb19zdHJlYW1fZ2V0X291dHB1
dF9zdHJlYW0oR19JT19TVFJFQU0oaGFuZGxlKSksIG51bGxwdHIsIG51bGxwdHIpOworfQorCiBp
bnQgd3JpdGVUb0ZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSwgY29uc3Qgdm9pZCogZGF0
YSwgaW50IGxlbmd0aCkKIHsKICAgICBpZiAoIWxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9wb3NpeC9G
aWxlU3lzdGVtUE9TSVguY3BwCmluZGV4IGIxMzM4MjRlYzJhMTE1ZWE1MGM3YzM0ZTBmMWE1ZWNl
ODA0MDJkNGMuLjc5NTY3MGZkNmQ4MDI3OGRmNmMxNzBiMjE2MmM0OGI1MmU5Y2JiZWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHAKKysrIGIvU291
cmNlL1dURi93dGYvcG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNwcApAQCAtMTE4LDYgKzExOCwxMSBA
QCBib29sIHRydW5jYXRlRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlLCBsb25nIGxvbmcg
b2Zmc2V0KQogICAgIHJldHVybiAhZnRydW5jYXRlKGhhbmRsZSwgb2Zmc2V0KTsKIH0KIAorYm9v
bCBmbHVzaEZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSkKK3sKKyAgICByZXR1cm4gIWZz
eW5jKGhhbmRsZSk7Cit9CisKIGludCB3cml0ZVRvRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFu
ZGxlLCBjb25zdCB2b2lkKiBkYXRhLCBpbnQgbGVuZ3RoKQogewogICAgIGRvIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL3dpbi9GaWxlU3lzdGVtV2luLmNwcCBiL1NvdXJjZS9XVEYvd3Rm
L3dpbi9GaWxlU3lzdGVtV2luLmNwcAppbmRleCBmZmE2MjkzYzczZTg0ZWVlMGJjZTEyY2M0ZDBk
YTdjZGNhNjBiODkzLi4yYmM4ZjIwMTA1MWM3ZDg1YjE3YjQ0YWMyNzM4ZDJlZDAxZjJkOTRhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi93aW4vRmlsZVN5c3RlbVdpbi5jcHAKKysrIGIvU291
cmNlL1dURi93dGYvd2luL0ZpbGVTeXN0ZW1XaW4uY3BwCkBAIC0zMDMsNiArMzAzLDEyIEBAIGJv
b2wgdHJ1bmNhdGVGaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUsIGxvbmcgbG9uZyBvZmZz
ZXQpCiAgICAgcmV0dXJuIFNldEZpbGVJbmZvcm1hdGlvbkJ5SGFuZGxlKGhhbmRsZSwgRmlsZUVu
ZE9mRmlsZUluZm8sICZlb2ZJbmZvLCBzaXplb2YoRklMRV9FTkRfT0ZfRklMRV9JTkZPKSk7CiB9
CiAKK2Jvb2wgZmx1c2hGaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUpCit7CisgICAgLy8g
Tm90IGltcGxlbWVudGVkLgorICAgIHJldHVybiBmYWxzZTsKK30KKwogaW50IHdyaXRlVG9GaWxl
KFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUsIGNvbnN0IHZvaWQqIGRhdGEsIGludCBsZW5ndGgp
CiB7CiAgICAgaWYgKCFpc0hhbmRsZVZhbGlkKGhhbmRsZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IDMwMzk0NzU5NzFkNGZiN2Y2ZjliZDFhMDZiOGZmMjZjYzUwMTdjYmQuLmQ4YTE1NzQ4ZmY5
ZDM2Y2JiNWQyNzhiYTI0YzEwZTdiZmFlMmMyMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0y
OTUsOCArMjk1LDEwIEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9kdWxl
cy9mZXRjaC9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlK0ZldGNoLmlkbAogCiAgICAgTW9kdWxl
cy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuaWRsCisgICAgTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlK0FjY2Vzc0hhbmRsZS5p
ZGwKICAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaWRs
CiAgICAgTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaWRsCisgICAg
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbAog
ICAgIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9TdG9yYWdlTWFuYWdlcitGaWxlU3lzdGVtQWNj
ZXNzLmlkbAogCiAgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5pZGwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IGMwYmU4
NmE3MzU0NDIyZjFmYmRhMGVhMGM2YWQzNDEzOTliZWM5MmUuLjVjM2E0NTU2MDk0NTQ3ZjA0YWZi
ZmFlOGMzNzU4MmRmMGEwYTA4NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTI0LDggKzEyNCwxMCBAQCAkKFBST0pFQ1RfRElSKS9N
b2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdFJlZGlyZWN0LmlkbAogJChQUk9KRUNUX0RJUikvTW9k
dWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9mZXRj
aC9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlK0ZldGNoLmlkbAogJChQUk9KRUNUX0RJUikvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuaWRsCiskKFBS
T0pFQ1RfRElSKS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUr
QWNjZXNzSGFuZGxlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRsCiAkKFBST0pFQ1Rf
RElSKS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvU3RvcmFnZU1hbmFnZXIrRmlsZVN5c3RlbUFj
Y2Vzcy5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkLmlkbAogJChQ
Uk9KRUNUX0RJUikvTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRCdXR0b24uaWRsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDIxMTEyY2Ux
NjQ3ZGQ1ZDRjNmFmNjU5MThiZmIzNDJhNGRjYmNlYmIuLjQ5MWQxY2RiNzliZTNiODMzYmRhODA5
ODAxYzg2ODk2ZDEzZjc2MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
LW91dHB1dC54Y2ZpbGVsaXN0CkBAIC05MDMsMTAgKzkwMywxNCBAQCAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0ZpbGVTeXN0ZW1FbnRyeUNhbGxiYWNrLmNw
cAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNGaWxlU3lz
dGVtRW50cnlDYWxsYmFjay5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0ZpbGVTeXN0ZW1GaWxlRW50cnkuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0ZpbGVTeXN0ZW1GaWxlRW50cnkuaAorJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNGaWxlU3lzdGVtRmlsZUhhbmRs
ZStBY2Nlc3NIYW5kbGUuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0ZpbGVTeXN0ZW1GaWxlSGFuZGxlK0FjY2Vzc0hhbmRsZS5oCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0ZpbGVTeXN0ZW1GaWxlSGFuZGxl
LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNGaWxl
U3lzdGVtRmlsZUhhbmRsZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0ZpbGVTeXN0ZW1IYW5kbGUuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0ZpbGVTeXN0ZW1IYW5kbGUuaAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZS5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNGaWxsTW9kZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTRmlsbE1vZGUuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNGb2N1c0V2ZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKaW5kZXggOTJkM2M0NzE5NjBiY2M3MmU4OTI5MDYzZWFmNWI1N2Q5NzQzYmU1NC4u
N2EyM2EyYjA5NDhjMzNhYTE4ZTM0MTdhZmY1ZjdhYjczNzNjNGVjNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlCkBAIC0xNTQsNyArMTU0LDkgQEAgSlNfQklORElOR19JRExTIDo9IFwK
ICAgICAkKFdlYkNvcmUpL01vZHVsZXMvZmV0Y2gvV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZStG
ZXRjaC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVT
eXN0ZW1EaXJlY3RvcnlIYW5kbGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlK0FjY2Vzc0hhbmRsZS5p
ZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1I
YW5kbGUuaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL1N0b3JhZ2VNYW5hZ2VyK0ZpbGVTeXN0ZW1BY2Nlc3MuaWRsIFwKICAgICAkKFdl
YkNvcmUpL01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL2dhbWVwYWQvR2FtZXBhZEJ1dHRvbi5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggMzk0
Y2IzYmI2ZTFhMzI3MjQ5NTFiMjI2NTdlZDk1OTlmZDM3OGY4Mi4uMTViMTU1NmNiODJiZWIzN2Vm
N2M2NmE0MThiOGRiMjRiMjVjZTFkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0zOSw5ICszOSwx
MiBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAKICAgICBNb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5oCiAgICAgTW9kdWxl
cy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgKKyAgICBNb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGVBY2Nlc3NIYW5kbGUuaAogICAgIE1v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmgKICAgICBNb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaAogICAgIE1vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAorICAgIE1vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oCisgICAgTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
ci5oCiAgICAgTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1N0b3JhZ2VNYW5hZ2VyRmlsZVN5c3Rl
bUFjY2Vzcy5oCiAgICAgTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbi5oCiAgICAgTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbkNhbGxiYWNrSWRlbnRpZmllci5oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVI
YW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVT
eXN0ZW1GaWxlSGFuZGxlLmNwcAppbmRleCBiMjEyNTQ3YjVmZTliOWJkMjU2N2ZiMWIwOTQ4MGJi
ZGQwZjE5ZjY3Li5hNjlhNzJjNmI2OGEyZDZjZDQ1YzhmYjczNDRiYTQzYjU4NzMzMTY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bUZpbGVIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKQEAgLTI3LDcgKzI3LDkgQEAKICNpbmNsdWRl
ICJGaWxlU3lzdGVtRmlsZUhhbmRsZS5oIgogCiAjaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaCIKICNp
bmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgIkpTRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGUuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00OSw1ICs1MSw0MSBAQCB2b2lkIEZpbGVTeXN0ZW1GaWxl
SGFuZGxlOjpnZXRGaWxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZT4+JiYg
cHJvbQogICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAi
Tm90IGltcGxlbWVudGVkIl9zIH0pOwogfQogCit2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpj
cmVhdGVTeW5jQWNjZXNzSGFuZGxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+PiYmIHByb21pc2UpCit7CisgICAgY29ubmVjdGlvbigp
LmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoaWRlbnRpZmllcigpLCBbcHJvdGVjdGVkVGhpcyA9IFJl
ZiB7ICp0aGlzIH0sIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0
YWJsZSB7CisgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCisgICAgICAgICAgICBy
ZXR1cm4gcHJvbWlzZS5yZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CisKKyAgICAg
ICAgcHJvbWlzZS5zZXR0bGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZShwcm90
ZWN0ZWRUaGlzLmdldCgpLCByZXN1bHQucmV0dXJuVmFsdWUoKSkpOworICAgIH0pOworfQorCit2
b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpnZXRTaXplKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBET01Qcm9taXNlRGVmZXJyZWQ8
SURMVW5zaWduZWRMb25nTG9uZz4mJiBwcm9taXNlKQoreworICAgIGNvbm5lY3Rpb24oKS5nZXRT
aXplKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgW3Byb21pc2UgPSBXVEZN
b3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIHByb21pc2Uuc2V0
dGxlKFdURk1vdmUocmVzdWx0KSk7CisgICAgfSk7Cit9CisKK3ZvaWQgRmlsZVN5c3RlbUZpbGVI
YW5kbGU6OnRydW5jYXRlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nl
c3NIYW5kbGVJZGVudGlmaWVyLCB1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSwgRE9NUHJvbWlzZURl
ZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3sKKyAgICBjb25uZWN0aW9uKCkudHJ1bmNhdGUoaWRl
bnRpZmllcigpLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBzaXplLCBbcHJvbWlzZSA9IFdURk1v
dmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgcHJvbWlzZS5zZXR0
bGUoV1RGTW92ZShyZXN1bHQpKTsKKyAgICB9KTsKK30KKwordm9pZCBGaWxlU3lzdGVtRmlsZUhh
bmRsZTo6Zmx1c2goRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hh
bmRsZUlkZW50aWZpZXIsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCit7Cisg
ICAgY29ubmVjdGlvbigpLmZsdXNoKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmll
ciwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7Cisg
ICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7CisgICAgfSk7Cit9CisKK3Zv
aWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNsb3NlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
SWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGNvbm5l
Y3Rpb24oKS5jbG9zZShpZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbUZpbGVIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCmluZGV4IDI1MDA1YzIxMzM4YmU3ODZhOTlmMjBiOGZh
YWRlM2MxMmE3YWRjZDUuLmFmY2VhMWY3MDEzNzkwOGZlMWM3NDBlMWZmZWViMWRlNzgxNDQxNTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxl
U3lzdGVtRmlsZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCkBAIC0yNiwxMCArMjYsMTMgQEAKICNwcmFn
bWEgb25jZQogCiAjaW5jbHVkZSAiRmlsZVN5c3RlbUhhbmRsZS5oIgorI2luY2x1ZGUgIkZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIEZpbGU7CitjbGFzcyBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTsKK3RlbXBs
YXRlPHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKIAogY2xhc3MgRmlsZVN5c3RlbUZpbGVI
YW5kbGUgZmluYWwgOiBwdWJsaWMgRmlsZVN5c3RlbUhhbmRsZSB7CiAgICAgV1RGX01BS0VfSVNP
X0FMTE9DQVRFRChGaWxlU3lzdGVtRmlsZUhhbmRsZSk7CkBAIC0zNyw2ICs0MCwxMiBAQCBwdWJs
aWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxGaWxlU3lzdGVtRmlsZUhhbmRsZT4g
Y3JlYXRlKFN0cmluZyYmLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgUmVmPEZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJik7CiAgICAgdm9pZCBnZXRGaWxlKERPTVByb21pc2VEZWZl
cnJlZDxJRExJbnRlcmZhY2U8RmlsZT4+JiYpOwogCisgICAgdm9pZCBjcmVhdGVTeW5jQWNjZXNz
SGFuZGxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGU+PiYmKTsKKyAgICB2b2lkIGdldFNpemUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMVW5zaWduZWRMb25nTG9uZz4mJik7
CisgICAgdm9pZCB0cnVuY2F0ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIs
IHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7Cisg
ICAgdm9pZCBmbHVzaChGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIERPTVBy
b21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKyAgICB2b2lkIGNsb3NlKEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2
b2lkPiYmKT4mJik7CisKIHByaXZhdGU6CiAgICAgRmlsZVN5c3RlbUZpbGVIYW5kbGUoU3RyaW5n
JiYsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uPiYmKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmlkbAppbmRleCA5ZTZh
YTg4NTZlZDk3YjZjYmE0NjM4NTA1YWZhYTFlNTVhNmQ5NWY1Li4xNmQzNWMwYjliNmIzN2M3ZjEy
Y2Y5ZjhiOTYwNDY1MTU2NmZmYzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5pZGwK
QEAgLTIzLDExICsyMywxMiBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgog
ICovCiAKKy8vIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vZmlsZS1zeXN0ZW0tYWNjZXNzLyNhcGkt
ZmlsZXN5c3RlbWhhbmRsZQorCiBbCiAgICAgRW5hYmxlZEJ5U2V0dGluZz1GaWxlU3lzdGVtQWNj
ZXNzRW5hYmxlZCwKICAgICBFeHBvc2VkPShXaW5kb3csV29ya2VyKSwKICAgICBTZWN1cmVDb250
ZXh0CiBdIGludGVyZmFjZSBGaWxlU3lzdGVtRmlsZUhhbmRsZSA6IEZpbGVTeXN0ZW1IYW5kbGUg
ewogICAgIFByb21pc2U8RmlsZT4gZ2V0RmlsZSgpOwotICAgIC8vIEZJWE1FOiBhZGQgUHJvbWlz
ZTxGaWxlU3lzdGVtV3JpdGFibGVGaWxlU3RyZWFtPiBjcmVhdGVXcml0YWJsZShvcHRpb25hbCBG
aWxlU3lzdGVtQ3JlYXRlV3JpdGFibGVPcHRpb25zIG9wdGlvbnMpOwogfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9G
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCBlNjA1YTY3ZDkyYWI0MzZmZDY0ODNl
Mzc4YjZmNjM4YjRkODFhYTBkLi40YzBmM2IwMGZhMmRjZjg2Njg1M2FlYjYxNDBlYzY0YTM3MzVk
YTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCkBAIC0yNiw2
ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVy
LmgiCiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL1Ro
cmVhZFNhZmVSZWZDb3VudGVkLmg+CiAKQEAgLTM4LDE1ICszOSwyNCBAQCB0ZW1wbGF0ZTx0eXBl
bmFtZT4gY2xhc3MgRXhjZXB0aW9uT3I7CiBjbGFzcyBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uPiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
KCkgeyB9CisKICAgICB1c2luZyBTYW1lRW50cnlDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoRXhjZXB0aW9uT3I8Ym9vbD4mJik+OwogICAgIHVzaW5nIEdldEhhbmRsZUNhbGxiYWNr
ID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllcj4mJik+OwotICAgIHVzaW5nIFJlbW92ZUVudHJ5Q2FsbGJhY2sgPSBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPjsKICAgICB1c2luZyBSZXNvbHZlQ2Fs
bGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPFZlY3RvcjxTdHJpbmc+
PiYmKT47CisgICAgdXNpbmcgR2V0QWNjZXNzSGFuZGxlQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
cj4mJik+OworICAgIHVzaW5nIFZvaWRDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
RXhjZXB0aW9uT3I8dm9pZD4mJik+OworICAgIHVzaW5nIEludGVnZXJDYWxsYmFjayA9IENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dWludDY0X3Q+JiYpPjsKKwogICAgIHZpcnR1
YWwgdm9pZCBpc1NhbWVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIsIFNhbWVFbnRyeUNhbGxiYWNrJiYpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgZ2V0RmlsZUhhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBHZXRIYW5kbGVDYWxsYmFjayYmKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIGdldERpcmVjdG9yeUhhbmRsZShGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBH
ZXRIYW5kbGVDYWxsYmFjayYmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92ZUVudHJ5KEZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRl
UmVjdXJzaXZlbHksIFJlbW92ZUVudHJ5Q2FsbGJhY2smJikgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCByZW1vdmVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBu
YW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBWb2lkQ2FsbGJhY2smJikgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCByZXNvbHZlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciwgUmVzb2x2ZUNhbGxiYWNrJiYpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgR2V0
QWNjZXNzSGFuZGxlQ2FsbGJhY2smJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRTaXplKEZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50
aWZpZXIsIEludGVnZXJDYWxsYmFjayYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHRydW5jYXRl
KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIsIHVpbnQ2NF90IHNpemUsIFZvaWRDYWxsYmFjayYmKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIGZsdXNoKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIsIFZvaWRDYWxsYmFjayYmKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGNsb3NlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIsIFZvaWRDYWxsYmFjayYmKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mYWQ0YjlhODRiODQ5ZDViY2U0N2MzNGEzZjBiNmQ2MWRlNzZkMmFiCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcApAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlLmgiCisKKyNpbmNsdWRlICJCdWZmZXJTb3VyY2UuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25P
ci5oIgorI2luY2x1ZGUgIkZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgiCisjaW5jbHVkZSAiSlNET01Q
cm9taXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+IEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjcmVhdGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUmIHNv
dXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoc291
cmNlLCBpZGVudGlmaWVyKSk7Cit9CisKK0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtRmlsZUhhbmRsZSYgc291cmNlLCBGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICA6IG1fc291
cmNlKHNvdXJjZSkKKyAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQoreworfQorCitGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6fkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKCkKK3sK
KyAgICBpZiAoIW1faXNDbG9zZWQpCisgICAgICAgIG1fc291cmNlLT5jbG9zZShtX2lkZW50aWZp
ZXIsIFtdKGF1dG8pIHsgfSk7Cit9CisKK3ZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6
OnRydW5jYXRlKHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9p
ZD4mJiBwcm9taXNlKQoreworICAgIG1fc291cmNlLT50cnVuY2F0ZShtX2lkZW50aWZpZXIsIHNp
emUsIFdURk1vdmUocHJvbWlzZSkpOworfQorCit2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlOjpnZXRTaXplKERPTVByb21pc2VEZWZlcnJlZDxJRExVbnNpZ25lZExvbmdMb25nPiYmIHBy
b21pc2UpCit7CisgICAgbV9zb3VyY2UtPmdldFNpemUobV9pZGVudGlmaWVyLCBXVEZNb3ZlKHBy
b21pc2UpKTsKK30KKwordm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Zmx1c2goRE9N
UHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3sKKyAgICBtX3NvdXJjZS0+Zmx1c2go
bV9pZGVudGlmaWVyLCBXVEZNb3ZlKHByb21pc2UpKTsKK30KKwordm9pZCBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZTo6Y2xvc2UoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkK
K3sKKyAgICBpZiAobV9pc0Nsb3NlZCkKKyAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4
Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOworCisgICAgbV9zb3VyY2UtPmNsb3NlKG1f
aWRlbnRpZmllciwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBwcm9taXNlID0gV1RG
TW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgICAgICBpZiAod2Vha1Ro
aXMpCisgICAgICAgICAgICB3ZWFrVGhpcy0+ZGlkQ2xvc2UoKTsKKworICAgICAgICBwcm9taXNl
LnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOworICAgIH0pOworfQorCit2b2lkIEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlOjpkaWRDbG9zZSgpCit7CisgICAgbV9pc0Nsb3NlZCA9IHRydWU7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMjllNDE1N2I2NTQxYjkzZTZlYTVmZTAyMzdmMGNmMjE1ZDAz
YzNiZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oCkBAIC0wLDAgKzEsNjAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIklETFR5cGVzLmgiCisjaW5jbHVkZSA8d3Rm
L1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBGaWxlU3lzdGVtRmls
ZUhhbmRsZTsKK3RlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBET01Qcm9taXNlRGVmZXJyZWQ7CisK
K2NsYXNzIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlIDogcHVibGljIFJlZkNvdW50ZWQ8Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8RmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGU+IHsKK3B1YmxpYzoKKyAgICBzdHJ1Y3QgRmlsZXN5c3RlbVJlYWRX
cml0ZU9wdGlvbnMgeworICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgYXQ7CisgICAgfTsKKwor
ICAgIHN0YXRpYyBSZWY8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+IGNyZWF0ZShGaWxlU3lz
dGVtRmlsZUhhbmRsZSYsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcik7Cisg
ICAgfkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKCk7CisKKyAgICB2b2lkIHRydW5jYXRlKHVu
c2lnbmVkIGxvbmcgbG9uZyBzaXplLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CisgICAg
dm9pZCBnZXRTaXplKERPTVByb21pc2VEZWZlcnJlZDxJRExVbnNpZ25lZExvbmdMb25nPiYmKTsK
KyAgICB2b2lkIGZsdXNoKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKyAgICB2b2lkIGNs
b3NlKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKyAgICB2b2lkIGRpZENsb3NlKCk7CisK
K3ByaXZhdGU6CisgICAgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUZpbGVI
YW5kbGUmLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpOworCisgICAgUmVm
PEZpbGVTeXN0ZW1GaWxlSGFuZGxlPiBtX3NvdXJjZTsKKyAgICBGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgIGJvb2wgbV9pc0Nsb3NlZCB7IGZh
bHNlIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMTIwNjRhNmRmNjExYzQxMjFlMjVj
NzEwMmYwMzMwM2NlNDQ5NGFhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbApAQCAt
MCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRCeVNldHRpbmc9QWNjZXNz
SGFuZGxlRW5hYmxlZCwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAorICAgIEV4cG9z
ZWQ9RGVkaWNhdGVkV29ya2VyLAorICAgIFNlY3VyZUNvbnRleHQKK10gaW50ZXJmYWNlIEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlIHsKKyAgICBQcm9taXNlPHVuZGVmaW5lZD4gdHJ1bmNhdGUo
W0VuZm9yY2VSYW5nZV0gdW5zaWduZWQgbG9uZyBsb25nIHNpemUpOworICAgIFByb21pc2U8dW5z
aWduZWQgbG9uZyBsb25nPiBnZXRTaXplKCk7CisgICAgUHJvbWlzZTx1bmRlZmluZWQ+IGZsdXNo
KCk7CisgICAgUHJvbWlzZTx1bmRlZmluZWQ+IGNsb3NlKCk7Cit9OworCitkaWN0aW9uYXJ5IEZp
bGVzeXN0ZW1SZWFkV3JpdGVPcHRpb25zIHsKKyAgICBbRW5mb3JjZVJhbmdlXSB1bnNpZ25lZCBs
b25nIGxvbmcgYXQ7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlSWRlbnRpZmllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMxMzUxYmYyZDk0ZTVmM2E3ZTYxYzY5OWNh
YjgyN2ExNzhiNjE3NWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLmgK
QEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8
d3RmL09iamVjdElkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXJUeXBlPjsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24uY3BwCmluZGV4IDQ1ZWIzZWM5NWI3NjUxZTdjMTVlMzBhNjk5YzQ3NGI2NTUyZDQzY2QuLmZh
N2Y2NjkzNTcxNjBiNzkxZGMyNWExYTMyMDgzZGEyNjk4NTY2YjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCkBAIC02NCw3ICs2NCw3
IEBAIHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpzY29wZUNsb3NlZCgp
CiAgICAgZm9yIChhdXRvJiBjYWxsYmFjayA6IGdldEhhbmRsZUNhbGxiYWNrcy52YWx1ZXMoKSkK
ICAgICAgICAgY2FsbGJhY2soRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CiAKLSAg
ICBhdXRvIHJlbW92ZUVudHJ5Q2FsbGJhY2tzID0gc3RkOjpleGNoYW5nZShtX3JlbW92ZUVudHJ5
Q2FsbGJhY2tzLCB7IH0pOworICAgIGF1dG8gcmVtb3ZlRW50cnlDYWxsYmFja3MgPSBzdGQ6OmV4
Y2hhbmdlKG1fdm9pZENhbGxiYWNrcywgeyB9KTsKICAgICBmb3IgKGF1dG8mIGNhbGxiYWNrIDog
cmVtb3ZlRW50cnlDYWxsYmFja3MudmFsdWVzKCkpCiAgICAgICAgIGNhbGxiYWNrKEV4Y2VwdGlv
biB7IEludmFsaWRTdGF0ZUVycm9yIH0pOwogCkBAIC0xNDcsMTkgKzE0NywxOSBAQCB2b2lkIFdv
cmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6ZGlkR2V0SGFuZGxlKENhbGxiYWNrSWRl
bnRpZmllciBjYWxsYmFjawogICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKHJlc3VsdCkpOwogfQog
Ci12b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6cmVtb3ZlRW50cnkoRmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBi
b29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlJlbW92
ZUVudHJ5Q2FsbGJhY2smJiBjYWxsYmFjaykKK3ZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOjpyZW1vdmVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHksIEZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Vm9pZENhbGxiYWNrJiYgY2FsbGJhY2spCiB7CiAgICAgaWYg
KCFtX3Njb3BlKQogICAgICAgICByZXR1cm4gY2FsbGJhY2soRXhjZXB0aW9uIHsgSW52YWxpZFN0
YXRlRXJyb3IgfSk7CiAKICAgICBhdXRvIGNhbGxiYWNrSWRlbnRpZmllciA9IENhbGxiYWNrSWRl
bnRpZmllcjo6Z2VuZXJhdGVUaHJlYWRTYWZlKCk7Ci0gICAgbV9yZW1vdmVFbnRyeUNhbGxiYWNr
cy5hZGQoY2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgbV92b2lk
Q2FsbGJhY2tzLmFkZChjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUoY2FsbGJhY2spKTsKIAog
ICAgIGNhbGxPbk1haW5UaHJlYWQoW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0g
UmVmIHsgbV9zY29wZS0+dGhyZWFkKCkgfSwgbWFpblRocmVhZENvbm5lY3Rpb24gPSBtX21haW5U
aHJlYWRDb25uZWN0aW9uLCBpZGVudGlmaWVyLCBuYW1lID0gbmFtZS5pc29sYXRlZENvcHkoKSwg
ZGVsZXRlUmVjdXJzaXZlbHldKCkgbXV0YWJsZSB7CiAgICAgICAgIGF1dG8gbWFpblRocmVhZENh
bGxiYWNrID0gW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gV1RGTW92ZSh3b3Jr
ZXJUaHJlYWQpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgICAgICB3b3JrZXJUaHJl
YWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoW2NhbGxiYWNrSWRlbnRpZmllciwgcmVzdWx0
ID0gY3Jvc3NUaHJlYWRDb3B5KHJlc3VsdCldIChhdXRvJiBzY29wZSkgbXV0YWJsZSB7CiAgICAg
ICAgICAgICAgICAgaWYgKGF1dG8gY29ubmVjdGlvbiA9IGRvd25jYXN0PFdvcmtlckdsb2JhbFNj
b3BlPihzY29wZSkuZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKCkpCi0gICAgICAgICAgICAg
ICAgICAgIGNvbm5lY3Rpb24tPmRpZFJlbW92ZUVudHJ5KGNhbGxiYWNrSWRlbnRpZmllciwgV1RG
TW92ZShyZXN1bHQpKTsKKyAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+Y29tcGxldGVW
b2lkQ2FsbGJhY2soY2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3VsdCkpOwogICAgICAg
ICAgICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CiAgICAgICAgIH07CiAKQEAg
LTE2NywxMiArMTY3LDYgQEAgdm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246
OnJlbW92ZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGkKICAgICB9KTsKIH0KIAot
dm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmRpZFJlbW92ZUVudHJ5KENh
bGxiYWNrSWRlbnRpZmllciBjYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPHZvaWQ+JiYg
cmVzdWx0KQotewotICAgIGlmIChhdXRvIGNhbGxiYWNrID0gbV9yZW1vdmVFbnRyeUNhbGxiYWNr
cy50YWtlKGNhbGxiYWNrSWRlbnRpZmllcikpCi0gICAgICAgIGNhbGxiYWNrKFdURk1vdmUocmVz
dWx0KSk7Ci19Ci0KIHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpyZXNv
bHZlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIEZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyIG90aGVySWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OjpSZXNvbHZlQ2FsbGJhY2smJiBjYWxsYmFjaykKIHsKICAgICBpZiAoIW1fc2NvcGUpCkBAIC0x
OTksNCArMTkzLDEyMiBAQCB2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6
ZGlkUmVzb2x2ZShDYWxsYmFja0lkZW50aWZpZXIgY2FsbGJhY2tJZAogICAgICAgICBjYWxsYmFj
ayhXVEZNb3ZlKHJlc3VsdCkpOwogfQogCit2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbjo6ZGlkQ3JlYXRlU3luY0FjY2Vzc0hhbmRsZShDYWxsYmFja0lkZW50aWZpZXIgY2Fs
bGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXI+JiYgcmVzdWx0KQoreworICAgIGlmIChhdXRvIGNhbGxiYWNrID0gbV9nZXRBY2Nl
c3NIYW5kbENhbGxiYWNrcy50YWtlKGNhbGxiYWNrSWRlbnRpZmllcikpCisgICAgICAgIGNhbGxi
YWNrKFdURk1vdmUocmVzdWx0KSk7Cit9CisKK3ZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOjpjb21wbGV0ZUludGVnZXJDYWxsYmFjayhDYWxsYmFja0lkZW50aWZpZXIgY2Fs
bGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25Pcjx1aW50NjRfdD4mJiByZXN1bHQpCit7CisgICAg
aWYgKGF1dG8gY2FsbGJhY2sgPSBtX2ludGVnZXJDYWxsYmFja3MudGFrZShjYWxsYmFja0lkZW50
aWZpZXIpKQorICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKHJlc3VsdCkpOworfQorCit2b2lkIFdv
cmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y29tcGxldGVWb2lkQ2FsbGJhY2soQ2Fs
bGJhY2tJZGVudGlmaWVyIGNhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8dm9pZD4mJiBy
ZXN1bHQpCit7CisgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX3ZvaWRDYWxsYmFja3MudGFrZShj
YWxsYmFja0lkZW50aWZpZXIpKQorICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKHJlc3VsdCkpOwor
fQorCit2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlU3luY0Fj
Y2Vzc0hhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEFjY2Vzc0hhbmRsZUNhbGxiYWNrJiYgY2FsbGJhY2sp
Cit7CisgICAgaWYgKCFtX3Njb3BlKQorICAgICAgICByZXR1cm4gY2FsbGJhY2soRXhjZXB0aW9u
IHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CisKKyAgICBhdXRvIGNhbGxiYWNrSWRlbnRpZmllciA9
IENhbGxiYWNrSWRlbnRpZmllcjo6Z2VuZXJhdGVUaHJlYWRTYWZlKCk7CisgICAgbV9nZXRBY2Nl
c3NIYW5kbENhbGxiYWNrcy5hZGQoY2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNr
KSk7CisKKyAgICBjYWxsT25NYWluVGhyZWFkKFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRo
cmVhZCA9IFJlZiB7IG1fc2NvcGUtPnRocmVhZCgpIH0sIG1haW5UaHJlYWRDb25uZWN0aW9uID0g
bV9tYWluVGhyZWFkQ29ubmVjdGlvbiwgaWRlbnRpZmllcl0oKSBtdXRhYmxlIHsKKyAgICAgICAg
YXV0byBtYWluVGhyZWFkQ2FsbGJhY2sgPSBbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3JrZXJUaHJl
YWQgPSBXVEZNb3ZlKHdvcmtlclRocmVhZCldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAg
ICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbY2FsbGJhY2tJ
ZGVudGlmaWVyLCByZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0KV0gKGF1dG8mIHNjb3Bl
KSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBjb25uZWN0aW9uID0gZG93bmNh
c3Q8V29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5maWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24o
KSkKKyAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+ZGlkQ3JlYXRlU3luY0FjY2Vzc0hh
bmRsZShjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUocmVzdWx0KSk7CisgICAgICAgICAgICB9
LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKKyAgICAgICAgfTsKKworICAgICAgICBt
YWluVGhyZWFkQ29ubmVjdGlvbi0+Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZShpZGVudGlmaWVyLCBX
VEZNb3ZlKG1haW5UaHJlYWRDYWxsYmFjaykpOworICAgIH0pOworfQorCit2b2lkIFdvcmtlckZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Z2V0U2l6ZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNj
ZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpJbnRlZ2Vy
Q2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBpZiAoIW1fc2NvcGUpCisgICAgICAgIHJldHVy
biBjYWxsYmFjayhFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKworICAgIGF1dG8g
Y2FsbGJhY2tJZGVudGlmaWVyID0gQ2FsbGJhY2tJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNh
ZmUoKTsKKyAgICBtX2ludGVnZXJDYWxsYmFja3MuYWRkKGNhbGxiYWNrSWRlbnRpZmllciwgV1RG
TW92ZShjYWxsYmFjaykpOworCisgICAgY2FsbE9uTWFpblRocmVhZChbY2FsbGJhY2tJZGVudGlm
aWVyLCB3b3JrZXJUaHJlYWQgPSBSZWYgeyBtX3Njb3BlLT50aHJlYWQoKSB9LCBtYWluVGhyZWFk
Q29ubmVjdGlvbiA9IG1fbWFpblRocmVhZENvbm5lY3Rpb24sIGlkZW50aWZpZXIsIGFjY2Vzc0hh
bmRsZUlkZW50aWZpZXJdKCkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8gbWFpblRocmVhZENhbGxi
YWNrID0gW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gV1RGTW92ZSh3b3JrZXJU
aHJlYWQpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgICAgICB3b3JrZXJUaHJlYWQt
PnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoW2NhbGxiYWNrSWRlbnRpZmllciwgcmVzdWx0ID0g
Y3Jvc3NUaHJlYWRDb3B5KHJlc3VsdCldIChhdXRvJiBzY29wZSkgbXV0YWJsZSB7CisgICAgICAg
ICAgICAgICAgaWYgKGF1dG8gY29ubmVjdGlvbiA9IGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3Bl
PihzY29wZSkuZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKCkpCisgICAgICAgICAgICAgICAg
ICAgIGNvbm5lY3Rpb24tPmNvbXBsZXRlSW50ZWdlckNhbGxiYWNrKGNhbGxiYWNrSWRlbnRpZmll
ciwgV1RGTW92ZShyZXN1bHQpKTsKKyAgICAgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1
bHRNb2RlKCkpOworICAgICAgICB9OworCisgICAgICAgIG1haW5UaHJlYWRDb25uZWN0aW9uLT5n
ZXRTaXplKGlkZW50aWZpZXIsIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdURk1vdmUobWFpblRo
cmVhZENhbGxiYWNrKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOjp0cnVuY2F0ZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlm
aWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgdWludDY0X3Qgc2l6ZSwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lk
Q2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBpZiAoIW1fc2NvcGUpCisgICAgICAgIHJldHVy
biBjYWxsYmFjayhFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKworICAgIGF1dG8g
Y2FsbGJhY2tJZGVudGlmaWVyID0gQ2FsbGJhY2tJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNh
ZmUoKTsKKyAgICBtX3ZvaWRDYWxsYmFja3MuYWRkKGNhbGxiYWNrSWRlbnRpZmllciwgV1RGTW92
ZShjYWxsYmFjaykpOworCisgICAgY2FsbE9uTWFpblRocmVhZChbY2FsbGJhY2tJZGVudGlmaWVy
LCB3b3JrZXJUaHJlYWQgPSBSZWYgeyBtX3Njb3BlLT50aHJlYWQoKSB9LCBtYWluVGhyZWFkQ29u
bmVjdGlvbiA9IG1fbWFpblRocmVhZENvbm5lY3Rpb24sIGlkZW50aWZpZXIsIGFjY2Vzc0hhbmRs
ZUlkZW50aWZpZXIsIHNpemVdKCkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8gbWFpblRocmVhZENh
bGxiYWNrID0gW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gV1RGTW92ZSh3b3Jr
ZXJUaHJlYWQpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgICAgICB3b3JrZXJUaHJl
YWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoW2NhbGxiYWNrSWRlbnRpZmllciwgcmVzdWx0
ID0gY3Jvc3NUaHJlYWRDb3B5KHJlc3VsdCldIChhdXRvJiBzY29wZSkgbXV0YWJsZSB7CisgICAg
ICAgICAgICAgICAgaWYgKGF1dG8gY29ubmVjdGlvbiA9IGRvd25jYXN0PFdvcmtlckdsb2JhbFNj
b3BlPihzY29wZSkuZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKCkpCisgICAgICAgICAgICAg
ICAgICAgIGNvbm5lY3Rpb24tPmNvbXBsZXRlVm9pZENhbGxiYWNrKGNhbGxiYWNrSWRlbnRpZmll
ciwgV1RGTW92ZShyZXN1bHQpKTsKKyAgICAgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1
bHRNb2RlKCkpOworICAgICAgICB9OworCisgICAgICAgIG1haW5UaHJlYWRDb25uZWN0aW9uLT50
cnVuY2F0ZShpZGVudGlmaWVyLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBzaXplLCBXVEZNb3Zl
KG1haW5UaHJlYWRDYWxsYmFjaykpOworICAgIH0pOworfQorCit2b2lkIFdvcmtlckZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Zmx1c2goRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRl
bnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRs
ZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Vm9pZENhbGxiYWNrJiYg
Y2FsbGJhY2spCit7CisgICAgaWYgKCFtX3Njb3BlKQorICAgICAgICByZXR1cm4gY2FsbGJhY2so
RXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CisKKyAgICBhdXRvIGNhbGxiYWNrSWRl
bnRpZmllciA9IENhbGxiYWNrSWRlbnRpZmllcjo6Z2VuZXJhdGVUaHJlYWRTYWZlKCk7CisgICAg
bV92b2lkQ2FsbGJhY2tzLmFkZChjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUoY2FsbGJhY2sp
KTsKKworICAgIGNhbGxPbk1haW5UaHJlYWQoW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhy
ZWFkID0gUmVmIHsgbV9zY29wZS0+dGhyZWFkKCkgfSwgbWFpblRocmVhZENvbm5lY3Rpb24gPSBt
X21haW5UaHJlYWRDb25uZWN0aW9uLCBpZGVudGlmaWVyLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVy
XSgpIG11dGFibGUgeworICAgICAgICBhdXRvIG1haW5UaHJlYWRDYWxsYmFjayA9IFtjYWxsYmFj
a0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKV0oYXV0byBy
ZXN1bHQpIG11dGFibGUgeworICAgICAgICAgICAgd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9z
dFRhc2tGb3JNb2RlKFtjYWxsYmFja0lkZW50aWZpZXIsIHJlc3VsdCA9IGNyb3NzVGhyZWFkQ29w
eShyZXN1bHQpXSAoYXV0byYgc2NvcGUpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGlmIChh
dXRvIGNvbm5lY3Rpb24gPSBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oc2NvcGUpLmZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbigpKQorICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9u
LT5jb21wbGV0ZVZvaWRDYWxsYmFjayhjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUocmVzdWx0
KSk7CisgICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKKyAgICAg
ICAgfTsKKworICAgICAgICBtYWluVGhyZWFkQ29ubmVjdGlvbi0+Zmx1c2goaWRlbnRpZmllciwg
YWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV1RGTW92ZShtYWluVGhyZWFkQ2FsbGJhY2spKTsKKyAg
ICB9KTsKK30KKwordm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNsb3Nl
KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIGlmICghbV9z
Y29wZSkKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVy
cm9yIH0pOworCisgICAgYXV0byBjYWxsYmFja0lkZW50aWZpZXIgPSBDYWxsYmFja0lkZW50aWZp
ZXI6OmdlbmVyYXRlVGhyZWFkU2FmZSgpOworICAgIG1fdm9pZENhbGxiYWNrcy5hZGQoY2FsbGJh
Y2tJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisKKyAgICBjYWxsT25NYWluVGhyZWFk
KFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFJlZiB7IG1fc2NvcGUtPnRocmVh
ZCgpIH0sIG1haW5UaHJlYWRDb25uZWN0aW9uID0gbV9tYWluVGhyZWFkQ29ubmVjdGlvbiwgaWRl
bnRpZmllciwgYWNjZXNzSGFuZGxlSWRlbnRpZmllcl0oKSBtdXRhYmxlIHsKKyAgICAgICAgYXV0
byBtYWluVGhyZWFkQ2FsbGJhY2sgPSBbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQg
PSBXVEZNb3ZlKHdvcmtlclRocmVhZCldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAg
ICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbY2FsbGJhY2tJZGVu
dGlmaWVyLCByZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0KV0gKGF1dG8mIHNjb3BlKSBt
dXRhYmxlIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBjb25uZWN0aW9uID0gZG93bmNhc3Q8
V29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5maWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oKSkK
KyAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+Y29tcGxldGVWb2lkQ2FsbGJhY2soY2Fs
bGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAgICAgfSwgV29ya2Vy
UnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CisgICAgICAgIH07CisKKyAgICAgICAgbWFpblRocmVh
ZENvbm5lY3Rpb24tPmNsb3NlKGlkZW50aWZpZXIsIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdU
Rk1vdmUobWFpblRocmVhZENhbGxiYWNrKSk7CisgICAgfSk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24uaAppbmRleCBlYzY5ZDE3NWEyZjc1OWYwNmIzZjFjNTQ3NDRkNzEwYzllNjFjM2FjLi45MGNi
Y2JmNjczYTU4NmYyNzQ0MmY5NjQwMzQ3YTkyNTI2NTBjZmM0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCkBAIC00Niw4ICs0NiwxMCBAQCBw
dWJsaWM6CiAgICAgdXNpbmcgQ2FsbGJhY2tJZGVudGlmaWVyID0gV29ya2VyRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uQ2FsbGJhY2tJZGVudGlmaWVyOwogICAgIHZvaWQgZGlkSXNTYW1lRW50
cnkoQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25Pcjxib29sPiYmKTsKICAgICB2b2lkIGRp
ZEdldEhhbmRsZShDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPEZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyPiYmKTsKLSAgICB2b2lkIGRpZFJlbW92ZUVudHJ5KENhbGxiYWNrSWRlbnRp
ZmllciwgRXhjZXB0aW9uT3I8dm9pZD4mJik7CiAgICAgdm9pZCBkaWRSZXNvbHZlKENhbGxiYWNr
SWRlbnRpZmllciwgRXhjZXB0aW9uT3I8VmVjdG9yPFN0cmluZz4+JiYpOworICAgIHZvaWQgZGlk
Q3JlYXRlU3luY0FjY2Vzc0hhbmRsZShDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcj4mJiByZXN1bHQpOworICAgIHZvaWQg
Y29tcGxldGVWb2lkQ2FsbGJhY2soQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25Pcjx2b2lk
PiYmIHJlc3VsdCk7CisgICAgdm9pZCBjb21wbGV0ZUludGVnZXJDYWxsYmFjayhDYWxsYmFja0lk
ZW50aWZpZXIsIEV4Y2VwdGlvbk9yPHVpbnQ2NF90PiYmIHJlc3VsdCk7CiAKIHByaXZhdGU6CiAg
ICAgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKFdvcmtlckdsb2JhbFNjb3BlJiwg
UmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJik7CkBAIC01NiwxNSArNTgsMjMgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGlzU2FtZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
LCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OjpTYW1lRW50cnlDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIGdldEZpbGVIYW5kbGUoRmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJ
Zk5lY2Vzc2FyeSwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRIYW5kbGVDYWxsYmFj
ayYmKSBmaW5hbDsKICAgICB2b2lkIGdldERpcmVjdG9yeUhhbmRsZShGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhhbmRsZUNhbGxiYWNrJiYpIGZpbmFsOwot
ICAgIHZvaWQgcmVtb3ZlRW50cnkoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpSZW1vdmVFbnRyeUNhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgcmVtb3ZlRW50
cnkoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBk
ZWxldGVSZWN1cnNpdmVseSwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJh
Y2smJikgZmluYWw7CiAgICAgdm9pZCByZXNvbHZlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
LCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OjpSZXNvbHZlQ2FsbGJhY2smJikgZmluYWw7CiAKKyAgICB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NI
YW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbjo6R2V0QWNjZXNzSGFuZGxlQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBnZXRTaXpl
KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6SW50ZWdlckNhbGxiYWNrJiYp
IGZpbmFsOworICAgIHZvaWQgdHJ1bmNhdGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSwgRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBm
bHVzaChGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYm
KSBmaW5hbDsKKyAgICB2b2lkIGNsb3NlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbjo6Vm9pZENhbGxiYWNrJiYpIGZpbmFsOworCiAgICAgV2Vha1B0cjxXb3JrZXJHbG9iYWxT
Y29wZT4gbV9zY29wZTsKICAgICBSZWZQdHI8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiBt
X21haW5UaHJlYWRDb25uZWN0aW9uOwogICAgIEhhc2hNYXA8Q2FsbGJhY2tJZGVudGlmaWVyLCBG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlNhbWVFbnRyeUNhbGxiYWNrPiBtX3NhbWVFbnRy
eUNhbGxiYWNrczsKICAgICBIYXNoTWFwPENhbGxiYWNrSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpHZXRIYW5kbGVDYWxsYmFjaz4gbV9nZXRIYW5kbGVDYWxsYmFja3M7
Ci0gICAgSGFzaE1hcDxDYWxsYmFja0lkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbjo6UmVtb3ZlRW50cnlDYWxsYmFjaz4gbV9yZW1vdmVFbnRyeUNhbGxiYWNrczsKICAgICBI
YXNoTWFwPENhbGxiYWNrSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpS
ZXNvbHZlQ2FsbGJhY2s+IG1fcmVzb2x2ZUNhbGxiYWNrczsKKyAgICBIYXNoTWFwPENhbGxiYWNr
SWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRBY2Nlc3NIYW5kbGVD
YWxsYmFjaz4gbV9nZXRBY2Nlc3NIYW5kbENhbGxiYWNrczsKKyAgICBIYXNoTWFwPENhbGxiYWNr
SWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2s+IG1f
dm9pZENhbGxiYWNrczsKKyAgICBIYXNoTWFwPENhbGxiYWNrSWRlbnRpZmllciwgRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uOjpJbnRlZ2VyQ2FsbGJhY2s+IG1faW50ZWdlckNhbGxiYWNrczsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggMWVmZjZhZWIz
OWJhMDJhNzM1ZjIxNGMzNGZkNzBjMTAzM2U5M2YxMC4uOTM5NzgxZDAzMTQ5YTc5YzBlZTQ3ZGZi
MmUwOWI4MGU5MmVmZTA4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQK
KysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTYxLDYgKzYxLDcgQEAgTW9kdWxl
cy9mZXRjaC9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlRmV0Y2guY3BwCiBNb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5jcHAKIE1vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKIE1vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmNwcAorTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcAogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtl
ckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2Vv
Tm90aWZpZXIuY3BwCiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcApAQCAtMzA0
Niw2ICszMDQ3LDcgQEAgSlNGaWxlU3lzdGVtRW50cnlDYWxsYmFjay5jcHAKIEpTRmlsZVN5c3Rl
bUZpbGVFbnRyeS5jcHAKIEpTRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCiBKU0ZpbGVTeXN0ZW1I
YW5kbGUuY3BwCitKU0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcAogSlNGaWxsTW9kZS5j
cHAKIEpTRm9jdXNFdmVudC5jcHAKIEpTRm9jdXNPcHRpb25zLmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDYxNGMzZDcwYzJj
YjEzZGZjMWMyMGNiMjYwODUyNjcwZjRlZDdlNWEuLjQ5M2U5YTRkZTg0OTc1MzQ5NzYzNjFkMmZi
MDk4NjQyYmQ4NGU3NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTI4MTAsNiArMjgxMCw3IEBACiAJCTkzMEFBQzlBMjUwRUI4
NDkwMDEzREE5RiAvKiBDU1NDb25kaXRpb25SdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzBBQUM5ODI1MEVCODE3MDAxM0RBOUYgLyogQ1NTQ29u
ZGl0aW9uUnVsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTkzMEFBQzlGMjUwRUQ0MDkwMDEzREE5RiAvKiBKU0NTU0NvbmRpdGlvblJ1bGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMEFBQzlEMjUw
RUQ0MDkwMDEzREE5RiAvKiBKU0NTU0NvbmRpdGlvblJ1bGUuaCAqLzsgfTsKIAkJOTMwQUFDQTIy
NTBFRDQxMTAwMTNEQTlGIC8qIEpTQ1NTR3JvdXBpbmdSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzBBQUNBMDI1MEVENDExMDAxM0RBOUYgLyog
SlNDU1NHcm91cGluZ1J1bGUuaCAqLzsgfTsKKwkJOTMwRTQ0ODYyNzBDMzcyMjAwREU3QUI3IC8q
IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwRTQ0ODQyNzBDMzcyMTAwREU3QUI3IC8q
IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzMTUzQkRBMTQxODFGN0EwMEZDRjVC
RSAvKiBtaXNzaW5nSW1hZ2VAMngucG5nIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MzE1M0JEOTE0MTgxRjdBMDBGQ0Y1QkUgLyogbWlzc2luZ0ltYWdl
QDJ4LnBuZyAqLzsgfTsKIAkJOTMxNTNCREMxNDE5NTlCQzAwRkNGNUJFIC8qIHRleHRBcmVhUmVz
aXplQ29ybmVyLnBuZyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTMxNTNCREIxNDE5NTlCQjAwRkNGNUJFIC8qIHRleHRBcmVhUmVzaXplQ29ybmVyLnBu
ZyAqLzsgfTsKIAkJOTMxNTNCRTIxNDE5NUE1NzAwRkNGNUJFIC8qIG1pc3NpbmdJbWFnZS5wbmcg
aW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMTUzQkUx
MTQxOTVBNTcwMEZDRjVCRSAvKiBtaXNzaW5nSW1hZ2UucG5nICovOyB9OwpAQCAtMjk0Nyw2ICsy
OTQ4LDcgQEAKIAkJOTNDMDlBNTMwQjA2NERCMzAwNUFCRDREIC8qIEV2ZW50SGFuZGxlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNDMDlBNTIwQjA2
NERCMzAwNUFCRDREIC8qIEV2ZW50SGFuZGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzQzA5Qzg2MEIwNjU3QUEwMDVBQkQ0RCAvKiBTY3Jv
bGxUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTNDMDlDODUwQjA2NTdBQTAwNUFCRDREIC8qIFNjcm9sbFR5cGVzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNDMzhCRkYxNjQ0NzNDNzAwMDkx
RUIyIC8qIFNjcm9sbGluZ1N0YXRlRml4ZWROb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0MzOEJGRDE2NDQ3M0M3MDAwOTFFQjIgLyogU2Nyb2xs
aW5nU3RhdGVGaXhlZE5vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQk5M0MzRkJEMzI3MENEM0Q1MDBGNUUxMkYgLyogRmlsZVN5c3RlbUZpbGVI
YW5kbGVBY2Nlc3NIYW5kbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzQzNGQkQwMjcwQ0QzRDQwMEY1RTEyRiAvKiBGaWxlU3lzdGVtRmlsZUhhbmRs
ZUFjY2Vzc0hhbmRsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTkzQzQ0MjAwMEY4MTNBRTEwMEMxQTYzNCAvKiBDb2xsZWN0aW9uVHlwZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNDNDQxRkYwRjgx
M0FFMTAwQzFBNjM0IC8qIENvbGxlY3Rpb25UeXBlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNDNEE0MTUxNjI5REY1QTAwQzNFQjZFIC8qIFNj
cm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQzRBNDEzMTYyOURGNUEwMEMzRUI2RSAvKiBTY3Jv
bGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNDNEY2RUIxMTA4RjlBNTAwOTlEMERCIC8qIEFj
Y2Vzc2liaWxpdHlTY3JvbGxiYXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzQzRGNkU5MTEwOEY5QTUwMDk5RDBEQiAvKiBBY2Nlc3NpYmlsaXR5U2Ny
b2xsYmFyLmggKi87IH07CkBAIC0yOTYzLDYgKzI5NjUsNyBAQAogCQk5M0Q2QjdBODI1NTFENDFG
MDA1OEREM0EgLyogRHVtbXlTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Q2QjdBNjI1NTFEM0VEMDA1OERE
M0EgLyogRHVtbXlTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNEOUQ1M0MwREEyN0UxODAwNzcyMTZD
IC8qIFJhbmdlQm91bmRhcnlQb2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTNEOUQ1M0IwREEyN0UxODAwNzcyMTZDIC8qIFJhbmdlQm91bmRhcnlQ
b2ludC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTkzRTI0MUZGMEIyQjRFNDAwMEM3MzJBMSAvKiBIVE1MRnJhbWVPd25lckVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTI0MUZFMEIyQjRF
NDAwMEM3MzJBMSAvKiBIVE1MRnJhbWVPd25lckVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0UyNjlBMjI3MEE1RDVEMDAyQzRGRjAg
LyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTI2OTlGMjcwQTVENUMwMDJDNEZGMCAvKiBGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTkzRTJBMzA3MTIzRTlEQzAwMDlGRTEyQSAvKiBIVE1MUGFyc2VySWRp
b21zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Uy
QTMwNTEyM0U5REMwMDA5RkUxMkEgLyogSFRNTFBhcnNlcklkaW9tcy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRTVCMjY1MjQ1NUU5NkYwMDVD
NTJEMCAvKiBBdHRyaWJ1dGVkU3RyaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5M0U1QjI2MzI0NTVFOTZGMDA1QzUyRDAgLyogQXR0cmlidXRlZFN0
cmluZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTkzRjE5OEU1MDgyNDVFNTkwMDFFOUFCQyAvKiBIVE1MRG9jdW1lbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MjNEMjNDMDJERTQzOTYwMTg2MzVD
QSAvKiBIVE1MRG9jdW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwpAQCAtMTE2OTUsNiArMTE2OTgsNyBAQAogCQk5MzBBQUNBMDI1MEVENDExMDAx
M0RBOUYgLyogSlNDU1NHcm91cGluZ1J1bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSlNDU1NHcm91cGluZ1J1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTMwQUFDQTEyNTBFRDQxMTAwMTNEQTlGIC8qIEpTQ1NTR3JvdXBpbmdSdWxlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ1NTR3JvdXBpbmdSdWxlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMwQzkwREMxOUNGOTY1MzAwRDZDMjFBIC8qIExl
Z2FjeUlubGluZUl0ZXJhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IExlZ2FjeUlubGluZUl0ZXJhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTMwRTQ0ODQyNzBDMzcyMTAwREU3QUI3IC8qIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
SWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTMxNTNCRDkxNDE4MUY3QTAwRkNGNUJFIC8qIG1pc3NpbmdJbWFnZUAyeC5wbmcgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBh
dGggPSAibWlzc2luZ0ltYWdlQDJ4LnBuZyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTkzMTUzQkRCMTQxOTU5QkIwMEZDRjVCRSAvKiB0ZXh0QXJlYVJlc2l6ZUNvcm5lci5wbmcgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7
IHBhdGggPSB0ZXh0QXJlYVJlc2l6ZUNvcm5lci5wbmc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTkzMTUzQkUxMTQxOTVBNTcwMEZDRjVCRSAvKiBtaXNzaW5nSW1hZ2UucG5nICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBw
YXRoID0gbWlzc2luZ0ltYWdlLnBuZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEx
OTY2LDYgKzExOTcwLDggQEAKIAkJOTNDMDlDODUwQjA2NTdBQTAwNUFCRDREIC8qIFNjcm9sbFR5
cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbFR5cGVzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQzM4QkZDMTY0NDczQzcwMDA5MUVCMiAvKiBT
Y3JvbGxpbmdTdGF0ZUZpeGVkTm9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTY3JvbGxpbmdTdGF0ZUZpeGVkTm9kZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTkzQzM4QkZEMTY0NDczQzcwMDA5MUVCMiAvKiBTY3JvbGxpbmdTdGF0ZUZpeGVk
Tm9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxpbmdTdGF0ZUZp
eGVkTm9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0MzRkJEMDI3MENEM0Q0
MDBGNUUxMkYgLyogRmlsZVN5c3RlbUZpbGVIYW5kbGVBY2Nlc3NIYW5kbGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZVN5c3RlbUZpbGVIYW5kbGVBY2Nlc3NIYW5kbGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNDM0ZCRDIyNzBDRDNENDAwRjVFMTJG
IC8qIEZpbGVTeXN0ZW1GaWxlSGFuZGxlK0FjY2Vzc0hhbmRsZS5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gIkZpbGVTeXN0ZW1GaWxlSGFuZGxlK0FjY2Vzc0hhbmRsZS5pZGwiOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5M0M0NDFGRjBGODEzQUUxMDBDMUE2MzQgLyogQ29sbGVj
dGlvblR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29sbGVjdGlvblR5
cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNDNEE0MTMxNjI5REY1QTAwQzNF
QjZFIC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0M0QTQxNDE2MjlERjVBMDBDM0VCNkUg
LyogU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVN
YWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTk5NCw2ICsxMjAwMCw5IEBA
CiAJCTkzRTIyN0RGMEFGNTg5QUQwMEQ0ODMyNCAvKiBTdWJyZXNvdXJjZUxvYWRlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdWJyZXNvdXJjZUxvYWRlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRTI0MUZFMEIyQjRFNDAwMEM3MzJBMSAv
KiBIVE1MRnJhbWVPd25lckVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSFRNTEZyYW1lT3duZXJFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTkzRTI0MjVFMEIyQjUwOTUwMEM3MzJBMSAvKiBIVE1MRnJhbWVPd25lckVsZW1lbnQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTEZyYW1lT3duZXJFbGVtZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNFMjY5OUQyNzBBNUQ1QjAwMkM0
RkYwIC8qIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTkzRTI2OTlGMjcwQTVENUMwMDJDNEZGMCAvKiBGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0UyNjlBMDI3
MEE1RDVDMDAyQzRGRjAgLyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0UyQTMwNDEyM0U5REMwMDA5RkUx
MkEgLyogSFRNTFBhcnNlcklkaW9tcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBIVE1MUGFyc2VySWRpb21zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTNFMkEzMDUxMjNFOURDMDAwOUZFMTJBIC8qIEhUTUxQYXJzZXJJZGlvbXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTFBhcnNlcklkaW9tcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5M0U1QjI1NDI0NTM2QjFFMDA1QzUyRDAgLyogVVJMRGVjb21w
b3NpdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVUkxEZWNv
bXBvc2l0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIzNDMwLDE0ICsy
MzQzOSwyMCBAQAogCQkJCTkzMkM5QkQ1MjZERDYyNUIwMDUzQjNEQiAvKiBGaWxlU3lzdGVtRGly
ZWN0b3J5SGFuZGxlLmNwcCAqLywKIAkJCQk5MzJDOUJENDI2REQ2MjVBMDA1M0IzREIgLyogRmls
ZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5oICovLAogCQkJCTkzMkM5QkQyMjZERDYyNTcwMDUzQjNE
QiAvKiBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmlkbCAqLywKKwkJCQk5M0MzRkJEMjI3MENE
M0Q0MDBGNUUxMkYgLyogRmlsZVN5c3RlbUZpbGVIYW5kbGUrQWNjZXNzSGFuZGxlLmlkbCAqLywK
IAkJCQk5MzJDOUJEMzI2REQ2MjU5MDA1M0IzREIgLyogRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3Bw
ICovLAogCQkJCTkzMkM5QkQ2MjZERDYyNUMwMDUzQjNEQiAvKiBGaWxlU3lzdGVtRmlsZUhhbmRs
ZS5oICovLAogCQkJCTkzMkM5QkNFMjZERDYyNTIwMDUzQjNEQiAvKiBGaWxlU3lzdGVtRmlsZUhh
bmRsZS5pZGwgKi8sCisJCQkJOTNDM0ZCRDAyNzBDRDNENDAwRjVFMTJGIC8qIEZpbGVTeXN0ZW1G
aWxlSGFuZGxlQWNjZXNzSGFuZGxlLmggKi8sCiAJCQkJOTMyQzlCRDAyNkRENjI1NTAwNTNCM0RC
IC8qIEZpbGVTeXN0ZW1IYW5kbGUuY3BwICovLAogCQkJCTkzMkM5QkRBMjZERDYyNjEwMDUzQjNE
QiAvKiBGaWxlU3lzdGVtSGFuZGxlLmggKi8sCiAJCQkJOTMyQzlCRDkyNkRENjI2MDAwNTNCM0RC
IC8qIEZpbGVTeXN0ZW1IYW5kbGUuaWRsICovLAogCQkJCTkzNTQyNDI3MjcwM0JDODgwMDVDQTcy
QyAvKiBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllci5oICovLAogCQkJCTkzNTQyNDI5MjcwM0JD
QUQwMDVDQTcyQyAvKiBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCAqLywKKwkJCQk5M0Uy
NjlBMDI3MEE1RDVDMDAyQzRGRjAgLyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwICov
LAorCQkJCTkzRTI2OTlGMjcwQTVENUMwMDJDNEZGMCAvKiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZS5oICovLAorCQkJCTkzRTI2OTlEMjcwQTVENUIwMDJDNEZGMCAvKiBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZS5pZGwgKi8sCisJCQkJOTMwRTQ0ODQyNzBDMzcyMTAwREU3QUI3IC8qIEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oICovLAogCQkJCTkzNDQzRTdCMjZF
OEE2QkMwMDU4NTM4RiAvKiBTdG9yYWdlTWFuYWdlcitGaWxlU3lzdGVtQWNjZXNzLmlkbCAqLywK
IAkJCQk5MzQ0M0U3RDI2RThBNkJDMDA1ODUzOEYgLyogU3RvcmFnZU1hbmFnZXJGaWxlU3lzdGVt
QWNjZXNzLmggKi8sCiAJCQkJOTMyMzNDODUyNzA1NEM3ODAwQkJGNDFFIC8qIFdvcmtlckZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAgKi8sCkBAIC0zMjU1Nyw5ICszMjU3MiwxMiBAQAog
CQkJCTgzOEY4NkRCMUY1MDlFN0IwMEU4Q0ZDNSAvKiBGaWxlU3lzdGVtRW50cnlDYWxsYmFjay5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJODNGQjMzNzUxRjUwOEE1QjAwOTg2RTU0IC8qIEZpbGVTeXN0
ZW1GaWxlRW50cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDQzRTg3MjZFOTk1QzAwMDU4NTM4
RiAvKiBGaWxlU3lzdGVtRmlsZUhhbmRsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNDM0ZCRDMy
NzBDRDNENTAwRjVFMTJGIC8qIEZpbGVTeXN0ZW1GaWxlSGFuZGxlQWNjZXNzSGFuZGxlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5MzQ0M0U4ODI2RTk5NUM0MDA1ODUzOEYgLyogRmlsZVN5c3RlbUhh
bmRsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM1NDI0MkYyNzAzQ0E1MTAwNUNBNzJDIC8qIEZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzU0MjQzMDI3
MDNDQjg2MDA1Q0E3MkMgLyogRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk5M0UyNjlBMjI3MEE1RDVEMDAyQzRGRjAgLyogRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzMEU0NDg2MjcwQzM3MjIwMERFN0FCNyAv
KiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDNUVCNjlGMEU4MURBRUIwMEIyNTk2NSAvKiBGaWxsTGF5ZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTcxMkJFNDgzMUZFODY1REQwMDIwMzFDQyAvKiBGaWxsTW9kZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJODQ1RTcyRjgwRkQyNjFFRTAwQTg3RDc5IC8qIEZpbHRlci5oIGluIEhlYWRlcnMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRp
bk5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVz
LmgKaW5kZXggZTgzNWRmN2ZmMGIyMjBkZWJhMDU4ZmQzYTg0ZGY1ZDJjMjUxMzk1Yy4uMmJiOWE5
MzliZmNiNmE5NzU4ODYyZjc4ODU2NmU3MmMwNGEwZTcwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaApAQCAtMTI0LDYgKzEyNCw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhGaWxlU3lzdGVtRmlsZUVudHJ5KSBcCiAg
ICAgbWFjcm8oRmlsZVN5c3RlbUZpbGVIYW5kbGUpIFwKICAgICBtYWNybyhGaWxlU3lzdGVtSGFu
ZGxlKSBcCisgICAgbWFjcm8oRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUpIFwKICAgICBtYWNy
byhHYW1lcGFkKSBcCiAgICAgbWFjcm8oR2FtZXBhZEJ1dHRvbikgXAogICAgIG1hY3JvKEdhbWVw
YWRFdmVudCkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9y
YWdlL0ZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUVycm9yLmgKaW5kZXggNDQzYzk1MTRjZDkzMjkx
M2RkZTM0YzI3ZjZiNWI1NzIwMWEwYTQxZi4uODI5MDAyOTIzOTAxOTIzY2M3ZGJhNmMyNzdmM2Mz
MzRlNTUzNWU4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9y
YWdlL0ZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oCkBAIC0yNSw3ICsyNSw3IEBA
CiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSA8V2ViQ29yZS9FeGNlcHRpb25Db2RlLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9FeGNlcHRpb25Pci5oPgogI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRz
Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMzQsMjYgKzM0LDM3IEBAIGVudW0gY2xhc3Mg
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvciA6IHVpbnQ4X3QgewogICAgIEZpbGVOb3RGb3VuZCwKICAg
ICBJbnZhbGlkTmFtZSwKICAgICBJbnZhbGlkTW9kaWZpY2F0aW9uLAorICAgIEludmFsaWRTdGF0
ZSwKICAgICBUeXBlTWlzbWF0Y2gsCiAgICAgVW5rbm93bgogfTsKIAotaW5saW5lIFdlYkNvcmU6
OkV4Y2VwdGlvbkNvZGUgY29udmVydFRvRXhjZXB0aW9uQ29kZShGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yIGVycm9yKQoraW5saW5lIFdlYkNvcmU6OkV4Y2VwdGlvbk9yPHZvaWQ+IGNvbnZlcnRUb0V4
Y2VwdGlvbk9yKHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gZXJyb3IpCit7
CisgICAgaWYgKCFlcnJvcikKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIHJldHVybiBjb252
ZXJ0VG9FeGNlcHRpb25PcigqZXJyb3IpOworfQorCitpbmxpbmUgV2ViQ29yZTo6RXhjZXB0aW9u
IGNvbnZlcnRUb0V4Y2VwdGlvbihGaWxlU3lzdGVtU3RvcmFnZUVycm9yIGVycm9yKQogewogICAg
IHN3aXRjaCAoZXJyb3IpIHsKICAgICBjYXNlIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkZpbGVO
b3RGb3VuZDoKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGU6Ok5vdEZvdW5k
RXJyb3I7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpOb3RG
b3VuZEVycm9yIH07CiAgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpJbnZhbGlkTW9k
aWZpY2F0aW9uOgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uQ29kZTo6SW52YWxp
ZE1vZGlmaWNhdGlvbkVycm9yOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsg
V2ViQ29yZTo6SW52YWxpZE1vZGlmaWNhdGlvbkVycm9yIH07CiAgICAgY2FzZSBGaWxlU3lzdGVt
U3RvcmFnZUVycm9yOjpUeXBlTWlzbWF0Y2g6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpFeGNl
cHRpb25Db2RlOjpUeXBlRXJyb3I7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpFeGNlcHRpb24g
eyBXZWJDb3JlOjpUeXBlRXJyb3IgfTsKICAgICBjYXNlIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6
OkludmFsaWROYW1lOgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uQ29kZTo6VW5r
bm93bkVycm9yOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6
VW5rbm93bkVycm9yLCAiTmFtZSBpcyBpbnZhbGlkIiB9OworICAgIGNhc2UgRmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcjo6SW52YWxpZFN0YXRlOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0
aW9uIHsgV2ViQ29yZTo6SW52YWxpZFN0YXRlRXJyb3IgfTsKICAgICBjYXNlIEZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I6OlVua25vd246CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIHJldHVy
biBXZWJDb3JlOjpFeGNlcHRpb25Db2RlOjpVbmtub3duRXJyb3I7CisgICAgcmV0dXJuIFdlYkNv
cmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciB9OwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKQEAgLTY2LDYgKzc3LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0
czxXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHsKICAgICAgICAgV2ViS2l0OjpGaWxl
U3lzdGVtU3RvcmFnZUVycm9yOjpGaWxlTm90Rm91bmQsCiAgICAgICAgIFdlYktpdDo6RmlsZVN5
c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxpZE5hbWUsCiAgICAgICAgIFdlYktpdDo6RmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvcjo6SW52YWxpZE1vZGlmaWNhdGlvbiwKKyAgICAgICAgV2ViS2l0OjpGaWxl
U3lzdGVtU3RvcmFnZUVycm9yOjpJbnZhbGlkU3RhdGUsCiAgICAgICAgIFdlYktpdDo6RmlsZVN5
c3RlbVN0b3JhZ2VFcnJvcjo6VHlwZU1pc21hdGNoLAogICAgICAgICBXZWJLaXQ6OkZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I6OlVua25vd24KICAgICA+OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRs
ZS5jcHAKaW5kZXggMjJiYzNlZjRlZDI3OGExOWUyNDA2Yzc5NDBjZmI2YzgzOGQ5MmRlYy4uYzhh
MDE0MTNjYjMzMTk2NTNhOGViN2U3MmYxZWVjMzQ4M2M2YTY5ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGUuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJGaWxlU3lzdGVt
U3RvcmFnZUVycm9yLmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmgiCisj
aW5jbHVkZSA8d3RmL1Njb3BlLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC0xMzksNCAr
MTQwLDc5IEBAIEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9y
PiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6cmVzb2x2CiAgICAgcmV0dXJuIHJlc3RQYXRoLnNw
bGl0KHBhdGhTZXBhcmF0b3IpOwogfQogCitFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKCkKK3sKKyAgICBpZiAoIW1f
bWFuYWdlcikKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I6OlVua25vd24pOworCisgICAgYm9vbCBhY3F1aXJlZCA9IG1fbWFuYWdlci0+YWNxdWly
ZUxvY2tGb3JGaWxlKG1fcGF0aCwgbV9pZGVudGlmaWVyKTsKKyAgICBpZiAoIWFjcXVpcmVkKQor
ICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52
YWxpZFN0YXRlKTsKKworICAgIEFTU0VSVCghbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlKTsKKyAg
ICBtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgPSBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXI6OmdlbmVyYXRlVGhyZWFkU2FmZSgpOworICAgIHJldHVybiAqbV9h
Y3RpdmVTeW5jQWNjZXNzSGFuZGxlOworfQorCitFeHBlY3RlZDx1aW50NjRfdCwgRmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmdldFNpemUoV2ViQ29yZTo6
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIpCit7CisgICAgaWYgKCFtX21hbmFnZXIpCisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3Rl
ZChGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duKTsKKworICAgIGlmICghbV9hY3RpdmVT
eW5jQWNjZXNzSGFuZGxlIHx8ICptX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgIT0gYWNjZXNzSGFu
ZGxlSWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I6OlVua25vd24pOworCisgICAgYXV0byBzaXplID0gRmlsZVN5c3RlbTo6Zmls
ZVNpemUobV9wYXRoKTsKKyAgICBpZiAoIXNpemUpCisgICAgICAgIHJldHVybiBtYWtlVW5leHBl
Y3RlZChGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duKTsKKworICAgIHJldHVybiBzaXpl
LnZhbHVlKCk7Cit9CisKK3N0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmls
ZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OnRydW5jYXRlKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXpl
KQoreworICAgIGlmICghbV9tYW5hZ2VyKQorICAgICAgICByZXR1cm4gRmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvcjo6VW5rbm93bjsKKworICAgIGlmICghbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlIHx8
ICptX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgIT0gYWNjZXNzSGFuZGxlSWRlbnRpZmllcikKKyAg
ICAgICAgcmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd247CisKKyAgICBhdXRv
IGhhbmRsZSA9IEZpbGVTeXN0ZW06Om9wZW5GaWxlKG1fcGF0aCwgRmlsZVN5c3RlbTo6RmlsZU9w
ZW5Nb2RlOjpSZWFkV3JpdGUpOworICAgIGF1dG8gY2xvc2VGaWxlU2NvcGUgPSBtYWtlU2NvcGVF
eGl0KFsmXSB7CisgICAgICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZShoYW5kbGUpOworICAgIH0p
OworCisgICAgYXV0byByZXN1bHQgPSBGaWxlU3lzdGVtOjp0cnVuY2F0ZUZpbGUoaGFuZGxlLCBz
aXplKTsKKyAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgcmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I6OlVua25vd247CisKKyAgICByZXR1cm4gc3RkOjpudWxsb3B0OworfQorCitzdGQ6Om9w
dGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpm
bHVzaChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNz
SGFuZGxlSWRlbnRpZmllcikKK3sKKyAgICBpZiAoIW1fbWFuYWdlcikKKyAgICAgICAgcmV0dXJu
IEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd247CisKKyAgICBpZiAoIW1fYWN0aXZlU3lu
Y0FjY2Vzc0hhbmRsZSB8fCAqbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlICE9IGFjY2Vzc0hhbmRs
ZUlkZW50aWZpZXIpCisgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtu
b3duOworCisgICAgLy8gRklYTUU6IHdoZW4gd3JpdGUgb3BlcmF0aW9uIGlzIGltcGxlbWVudGVk
LCBwZXJmb3JtIGFjdHVhbCBmbHVzaCBoZXJlLgorICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cit9
CisKK3N0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3Jh
Z2VIYW5kbGU6OmNsb3NlKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRp
ZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKQoreworICAgIGlmICghbV9tYW5hZ2VyKQorICAg
ICAgICByZXR1cm4gRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bjsKKworICAgIGlmICgh
bV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlIHx8ICptX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgIT0g
YWNjZXNzSGFuZGxlSWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I6OlVua25vd247CisKKyAgICBtX21hbmFnZXItPnJlbGVhc2VMb2NrRm9yRmlsZShtX3Bh
dGgsIG1faWRlbnRpZmllcik7CisgICAgbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlID0gc3RkOjpu
dWxsb3B0OworCisgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oCmluZGV4IDg3OTkwOTA3ZDliODlhNTIz
ZjdmZjFmNTUwNzBhNTcwNjQwYWIzYjIuLmU0N2VkM2ExNmVlOTVhYjFkMTQ5OTM4ZDE5N2Y2NDYz
ZDk3NDkwMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFn
ZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oCkBAIC0yNyw2ICsyNyw3IEBA
CiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNw
YWNlIFdlYktpdCB7CkBAIC00OSw2ICs1MCwxMiBAQCBwdWJsaWM6CiAgICAgc3RkOjpvcHRpb25h
bDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZW1vdmVFbnRyeShjb25zdCBTdHJpbmcmIG5hbWUs
IGJvb2wgZGVsZXRlUmVjdXJzaXZlbHkpOwogICAgIEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBG
aWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXNvbHZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyKTsKIAorICAgIEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gY3JlYXRlU3luY0FjY2Vz
c0hhbmRsZSgpOworICAgIEV4cGVjdGVkPHVpbnQ2NF90LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9y
PiBnZXRTaXplKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcik7
CisgICAgc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiB0cnVuY2F0ZShXZWJD
b3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHVpbnQ2NF90IHNpemUp
OworICAgIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gZmx1c2goV2ViQ29y
ZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyKTsKKyAgICBzdGQ6Om9wdGlv
bmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGNsb3NlKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllcik7CisKIHByaXZhdGU6CiAgICAgRXhwZWN0ZWQ8V2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJl
cXVlc3RDcmVhdGVIYW5kbGUoSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCwgVHlwZSwgU3RyaW5n
JiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSk7CiAKQEAgLTU3LDYgKzY0LDcgQEAgcHJp
dmF0ZToKICAgICBUeXBlIG1fdHlwZTsKICAgICBTdHJpbmcgbV9wYXRoOwogICAgIFN0cmluZyBt
X25hbWU7CisgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZUlkZW50aWZpZXI+IG1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmNwcAppbmRleCAxYjdh
NTFhMmY2ODg0MTVjMzk2YjViNDhmZGMwNWY5OTVmYzZkM2RlLi5jMzk2NTFiOTMwOTExMmRkZDIy
ZDg1NTllNjYxMDJkNGJlYTBhNzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmNw
cApAQCAtODcsMTUgKzg3LDIxIEBAIHZvaWQgRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOjpjb25u
ZWN0aW9uQ2xvc2VkKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQgY29ubmVjCiB7CiAgICAgQVNT
RVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBhdXRvIGhhbmRsZXMgPSBtX2hhbmRsZXNC
eUNvbm5lY3Rpb24uZmluZChjb25uZWN0aW9uKTsKLSAgICBpZiAoaGFuZGxlcyA9PSBtX2hhbmRs
ZXNCeUNvbm5lY3Rpb24uZW5kKCkpCisgICAgYXV0byBjb25uZWN0aW9uSGFuZGxlcyA9IG1faGFu
ZGxlc0J5Q29ubmVjdGlvbi5maW5kKGNvbm5lY3Rpb24pOworICAgIGlmIChjb25uZWN0aW9uSGFu
ZGxlcyA9PSBtX2hhbmRsZXNCeUNvbm5lY3Rpb24uZW5kKCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIGZvciAoYXV0byBoYW5kbGVJZGVudGlmaWVyIDogaGFuZGxlcy0+dmFsdWUpIHsKLSAgICAg
ICAgYXV0byBoYW5kbGUgPSBtX2hhbmRsZXMudGFrZShoYW5kbGVJZGVudGlmaWVyKTsKLSAgICAg
ICAgbV9yZWdpc3RyeS51bnJlZ2lzdGVySGFuZGxlKGhhbmRsZUlkZW50aWZpZXIpOworICAgIGF1
dG8gaWRlbnRpZmllcnMgPSBjb25uZWN0aW9uSGFuZGxlcy0+dmFsdWU7CisgICAgZm9yIChhdXRv
IGlkZW50aWZpZXIgOiBpZGVudGlmaWVycykgeworICAgICAgICBhdXRvIGhhbmRsZSA9IG1faGFu
ZGxlcy50YWtlKGlkZW50aWZpZXIpOworICAgICAgICBtX3JlZ2lzdHJ5LnVucmVnaXN0ZXJIYW5k
bGUoaWRlbnRpZmllcik7CiAgICAgfQotICAgIG1faGFuZGxlc0J5Q29ubmVjdGlvbi5yZW1vdmUo
aGFuZGxlcyk7CisKKyAgICBtX2xvY2tNYXAucmVtb3ZlSWYoWyZpZGVudGlmaWVyc10oYXV0byYg
ZW50cnkpIHsKKyAgICAgICAgcmV0dXJuIGlkZW50aWZpZXJzLmNvbnRhaW5zKGVudHJ5LnZhbHVl
KTsKKyAgICB9KTsKKworICAgIG1faGFuZGxlc0J5Q29ubmVjdGlvbi5yZW1vdmUoY29ubmVjdGlv
bkhhbmRsZXMpOwogfQogCiBFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOjpn
ZXREaXJlY3RvcnkoSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCBjb25uZWN0aW9uKQpAQCAtMTA1
LDQgKzExMSwyMyBAQCBFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbQogICAgIHJldHVybiBjcmVhdGVI
YW5kbGUoY29ubmVjdGlvbiwgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OlR5cGU6OkRpcmVjdG9y
eSwgU3RyaW5nIHsgbV9wYXRoIH0sIHsgfSwgdHJ1ZSk7CiB9CiAKK2Jvb2wgRmlsZVN5c3RlbVN0
b3JhZ2VNYW5hZ2VyOjphY3F1aXJlTG9ja0ZvckZpbGUoY29uc3QgU3RyaW5nJiBwYXRoLCBXZWJD
b3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGlmICht
X2xvY2tNYXAuY29udGFpbnMocGF0aCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIG1f
bG9ja01hcC5hZGQocGF0aCwgaWRlbnRpZmllcik7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jv
b2wgRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOjpyZWxlYXNlTG9ja0ZvckZpbGUoY29uc3QgU3Ry
aW5nJiBwYXRoLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVy
KQoreworICAgIGlmIChhdXRvIGxvY2tlZEJ5SWRlbnRpZmllciA9IG1fbG9ja01hcC5nZXQocGF0
aCk7IGxvY2tlZEJ5SWRlbnRpZmllciA9PSBpZGVudGlmaWVyKSB7CisgICAgICAgIG1fbG9ja01h
cC5yZW1vdmUocGF0aCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHJldHVy
biBmYWxzZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmgg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VN
YW5hZ2VyLmgKaW5kZXggOGI0MzhiMmU5M2RmNGE4NDQ3YzNiNzc0MGJjNTRjODdmY2E0MzE5Zi4u
MWFlYmE5ZGFmNzk2OGM2OGQ4ZmU4YjNiZTdiNjc1NTI4M2Q3NjEzMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdl
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVt
U3RvcmFnZU1hbmFnZXIuaApAQCAtNDMsMTIgKzQzLDE1IEBAIHB1YmxpYzoKICAgICBjb25zdCBT
dHJpbmcmIGdldFBhdGgoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIpOwogICAg
IHZvaWQgY29ubmVjdGlvbkNsb3NlZChJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEKTsKICAgICBF
eHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcj4gZ2V0RGlyZWN0b3J5KElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQpOworICAg
IGJvb2wgYWNxdWlyZUxvY2tGb3JGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCwgV2ViQ29yZTo6Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIpOworICAgIGJvb2wgcmVsZWFzZUxvY2tGb3JGaWxlKGNv
bnN0IFN0cmluZyYgcGF0aCwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIpOwog
CiBwcml2YXRlOgogICAgIFN0cmluZyBtX3BhdGg7CiAgICAgRmlsZVN5c3RlbVN0b3JhZ2VIYW5k
bGVSZWdpc3RyeSYgbV9yZWdpc3RyeTsKICAgICBIYXNoTWFwPElQQzo6Q29ubmVjdGlvbjo6VW5p
cXVlSUQsIEhhc2hTZXQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXI+PiBtX2hh
bmRsZXNCeUNvbm5lY3Rpb247CiAgICAgSGFzaE1hcDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlPj4gbV9o
YW5kbGVzOworICAgIEhhc2hNYXA8U3RyaW5nLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllcj4gbV9sb2NrTWFwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VN
YW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3Jr
U3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IDY3YWViYTUyMDZhNjYyYzYxZDliMGU1NmQ1NTk1MDlj
YjEyYTUwMjUuLjM2ODYxNzQyODE4MGQ3ODQ2YjJkNjJmMDYwZTk5ZTVkYzdhN2RkNjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFn
ZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9O
ZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC0yMjYsNSArMjI2LDYwIEBAIHZvaWQgTmV0d29y
a1N0b3JhZ2VNYW5hZ2VyOjpyZXNvbHZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyIGlkZW50aWZpCiAgICAgY29tcGxldGlvbkhhbmRsZXIoaGFuZGxlLT5yZXNvbHZlKHRhcmdl
dElkZW50aWZpZXIpKTsKIH0KIAordm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmNyZWF0ZVN5
bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRp
ZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKKwor
ICAgIGF1dG8gaGFuZGxlID0gbV9maWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5LT5nZXRI
YW5kbGUoaWRlbnRpZmllcik7CisgICAgaWYgKCFoYW5kbGUpCisgICAgICAgIHJldHVybiBjb21w
bGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZChGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtu
b3duKSk7CisKKyAgICBjb21wbGV0aW9uSGFuZGxlcihoYW5kbGUtPmNyZWF0ZVN5bmNBY2Nlc3NI
YW5kbGUoKSk7Cit9CisKK3ZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpnZXRTaXplRm9yQWNj
ZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIs
IFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPHVpbnQ2NF90LCBG
aWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgQVNT
RVJUKCFSdW5Mb29wOjppc01haW4oKSk7CisKKyAgICBhdXRvIGhhbmRsZSA9IG1fZmlsZVN5c3Rl
bVN0b3JhZ2VIYW5kbGVSZWdpc3RyeS0+Z2V0SGFuZGxlKGlkZW50aWZpZXIpOworICAgIGlmICgh
aGFuZGxlKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIobWFrZVVuZXhwZWN0ZWQo
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bikpOworCisgICAgY29tcGxldGlvbkhhbmRs
ZXIoaGFuZGxlLT5nZXRTaXplKGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpKTsKK30KKwordm9pZCBO
ZXR3b3JrU3RvcmFnZU1hbmFnZXI6OnRydW5jYXRlRm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1aW50NjRf
dCBzaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIEFTU0VSVCghUnVuTG9v
cDo6aXNNYWluKCkpOworCisgICAgYXV0byBoYW5kbGUgPSBtX2ZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlUmVnaXN0cnktPmdldEhhbmRsZShpZGVudGlmaWVyKTsKKyAgICBpZiAoIWhhbmRsZSkKKyAg
ICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVu
a25vd24pOworCisgICAgY29tcGxldGlvbkhhbmRsZXIoaGFuZGxlLT50cnVuY2F0ZShhY2Nlc3NI
YW5kbGVJZGVudGlmaWVyLCBzaXplKSk7Cit9CisKK3ZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2Vy
OjpmbHVzaEZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9w
dGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sK
KyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAgIGF1dG8gaGFuZGxlID0gbV9m
aWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5LT5nZXRIYW5kbGUoaWRlbnRpZmllcik7Cisg
ICAgaWYgKCFoYW5kbGUpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihGaWxlU3lz
dGVtU3RvcmFnZUVycm9yOjpVbmtub3duKTsKKworICAgIGNvbXBsZXRpb25IYW5kbGVyKGhhbmRs
ZS0+Zmx1c2goYWNjZXNzSGFuZGxlSWRlbnRpZmllcikpOworfQorCit2b2lkIE5ldHdvcmtTdG9y
YWdlTWFuYWdlcjo6Y2xvc2VBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
c3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCit7CisgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CisKKyAgICBhdXRvIGhhbmRs
ZSA9IG1fZmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeS0+Z2V0SGFuZGxlKGlkZW50aWZp
ZXIpOworICAgIGlmICghaGFuZGxlKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIo
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bik7CisKKyAgICBjb21wbGV0aW9uSGFuZGxl
cihoYW5kbGUtPmNsb3NlKGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaAppbmRleCAxYjgxMGRmNzhkNzNk
MmZmMDllODRkZTJjY2IyMmJhMDYxODAxMWM4Li5hODE4ODUxZmYxNDUzODY4YTc0ZDE3NmZiNmNi
MjhmMjFhYjMyMzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0
b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oCkBAIC0zMCw2ICszMCw3IEBA
CiAjaW5jbHVkZSAiT3JpZ2luU3RvcmFnZU1hbmFnZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Ns
aWVudE9yaWdpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRp
Zmllci5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpAQCAtNjksNiArNzAsMTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIGdldERpcmVjdG9yeUhhbmRs
ZShJUEM6OkNvbm5lY3Rpb24mLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwg
U3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5
c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAgICB2b2lkIHJlbW92ZUVudHJ5KFdlYkNvcmU6OkZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRl
UmVjdXJzaXZlbHksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxGaWxlU3lz
dGVtU3RvcmFnZUVycm9yPik+JiYpOwogICAgIHZvaWQgcmVzb2x2ZShXZWJDb3JlOjpGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8VmVjdG9yPFN0cmluZz4sIEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I+KT4mJik7CisgICAgdm9pZCBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwg
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKKyAgICB2b2lkIGdldFNpemVGb3JBY2Nlc3NI
YW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChF
eHBlY3RlZDx1aW50NjRfdCwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKKyAgICB2b2lk
IHRydW5jYXRlRm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHVpbnQ2
NF90IHNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVt
U3RvcmFnZUVycm9yPik+JiYpOworICAgIHZvaWQgZmx1c2hGb3JBY2Nlc3NIYW5kbGUoV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFs
PEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CisgICAgdm9pZCBjbG9zZUFjY2Vzc0hhbmRs
ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6
b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKIAogICAgIFBBTDo6U2Vzc2lv
bklEIG1fc2Vzc2lvbklEOwogICAgIFJlZjxXb3JrUXVldWU+IG1fcXVldWU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5h
Z2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05l
dHdvcmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCA2MmU3NDAzY2JiNzAwYWQ5NmJi
ZWJlMGZlYjgyMDVjODE2MjI0ZmY3Li40ZmVhMjc2NWZkOTJhOTgwNjBjZDA0MDA2MmM1ZTk0NTVj
ODE5ZmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
TmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KQEAg
LTMyLDQgKzMyLDEwIEBACiAgICAgR2V0RGlyZWN0b3J5SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0cmluZyBuYW1lLCBib29sIGNyZWF0ZUlm
TmVjZXNzYXJ5KSAtPiAoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIsIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYyBXYW50c0Nv
bm5lY3Rpb24KICAgICBSZW1vdmVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBTdHJpbmcgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSkgLT4g
KHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFz
eW5jCiAgICAgUmVzb2x2ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciB0YXJnZXRJZGVudGlm
aWVyKSAtPiAoRXhwZWN0ZWQ8VmVjdG9yPFN0cmluZz4sIFdlYktpdDo6RmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvcj4gcmVzdWx0KSBBc3luYworCisgICAgQ3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJD
b3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8
V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXZWJLaXQ6OkZp
bGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKKyAgICBHZXRTaXplRm9yQWNjZXNz
SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdl
YkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8dWludDY0X3QsIFdlYktpdDo6RmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvcj4gcmVzdWx0KSBBc3luYworICAgIFRydW5jYXRlRm9yQWNjZXNzSGFuZGxlKFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1
aW50NjRfdCBzaXplKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I+IHJlc3VsdCkgQXN5bmMKKyAgICBGbHVzaEZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllcikgLT4gKHN0
ZDo6b3B0aW9uYWw8V2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5j
CisgICAgQ2xvc2VBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6Rmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggZWQ5NGEzZWU1NjY4YTM0OGJjNzZhZGJkNDJiNjUw
MDcxZDFiOTUxYS4uNTk2YjNmYWI2NTg2NmJkZWY1ODEyODBkOTExNjIwYzA3NGY2N2VmMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0yODIsNiArMjgyLDcg
QEAgZGVmIHR5cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQoKToKICAgICAgICAg
J1dlYkNvcmU6OkRyYWdBcHBsaWNhdGlvbkZsYWdzJywKICAgICAgICAgJ1dlYkNvcmU6OkZldGNo
SWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
cicsCisgICAgICAgICdXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZp
ZXInLAogICAgICAgICAnV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcycsCiAgICAgICAgICdXZWJDb3JlOjpJbWFn
ZURlY29kZXJJZGVudGlmaWVyJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5jcHAKaW5kZXggYjA1NGM5MjM4YmRkMmZjZWM4MTI5YjAzMDZiNTNiYmZiMWM3
ZGY5My4uN2EyMzhhY2E0YzM4ZDY3NTU0YTdkYTYzZWU3ZGZlMjU2YzdiY2Q4YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAgLTY3LDcgKzY3
LDcgQEAgdm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldEZpbGVIYW5kbGUo
V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW4KIAogICAgIG1fY29ubmVjdGlvbi0+c2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OkdldEZpbGVIYW5k
bGUoaWRlbnRpZmllciwgbmFtZSwgY3JlYXRlSWZOZWNlc3NhcnkpLCBbbmFtZSwgY29tcGxldGlv
bkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byByZXN1bHQpIG11dGFi
bGUgewogICAgICAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9u
SGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBjb252ZXJ0VG9FeGNlcHRpb25Db2RlKHJlc3Vs
dC5lcnJvcigpKSB9KTsKKyAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihjb252
ZXJ0VG9FeGNlcHRpb24ocmVzdWx0LmVycm9yKCkpKTsKIAogICAgICAgICBhdXRvIGlkZW50aWZp
ZXIgPSByZXN1bHQudmFsdWUoKTsKICAgICAgICAgaWYgKCFpZGVudGlmaWVyLmlzVmFsaWQoKSkK
QEAgLTg0LDcgKzg0LDcgQEAgdm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246Omdl
dERpcmVjdG9yeUhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGwKIAogICAgIG1fY29ubmVj
dGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6
OkdldERpcmVjdG9yeUhhbmRsZShpZGVudGlmaWVyLCBuYW1lLCBjcmVhdGVJZk5lY2Vzc2FyeSks
IFtuYW1lLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShh
dXRvIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghcmVzdWx0KQotICAgICAgICAgICAg
cmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IGNvbnZlcnRUb0V4
Y2VwdGlvbkNvZGUocmVzdWx0LmVycm9yKCkpIH0pOworICAgICAgICAgICAgcmV0dXJuIGNvbXBs
ZXRpb25IYW5kbGVyKGNvbnZlcnRUb0V4Y2VwdGlvbihyZXN1bHQuZXJyb3IoKSkpOwogCiAgICAg
ICAgIGF1dG8gaWRlbnRpZmllciA9IHJlc3VsdC52YWx1ZSgpOwogICAgICAgICBpZiAoIWlkZW50
aWZpZXIuaXNWYWxpZCgpKQpAQCAtOTQsMTYgKzk0LDEzIEBAIHZvaWQgV2ViRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpnZXREaXJlY3RvcnlIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsCiAgICAgfSk7CiB9CiAKLXZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpy
ZW1vdmVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHksIFdlYkNvcmU6OkZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6UmVtb3ZlRW50cnlDYWxsYmFjayYmIGNvbXBsZXRp
b25IYW5kbGVyKQordm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnJlbW92ZUVu
dHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgV2ViQ29yZTo6RmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICBpZiAoIW1fY29ubmVjdGlvbikKICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVy
KFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5lY3Rpb24g
aXMgbG9zdCIgfSk7CiAKICAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNz
YWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpSZW1vdmVFbnRyeShpZGVudGlmaWVyLCBuYW1l
LCBkZWxldGVSZWN1cnNpdmVseSksIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpXShhdXRvIGVycm9yKSBtdXRhYmxlIHsKLSAgICAgICAgaWYgKGVycm9yKQot
ICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7
IGNvbnZlcnRUb0V4Y2VwdGlvbkNvZGUoZXJyb3IudmFsdWUoKSkgfSk7Ci0KLSAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoeyB9KTsKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGNv
bnZlcnRUb0V4Y2VwdGlvbk9yKGVycm9yKSk7CiAgICAgfSk7CiB9CiAKQEAgLTExNCwxMCArMTEx
LDY2IEBAIHZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpyZXNvbHZlKFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyCiAKICAgICBtX2Nvbm5lY3Rpb24tPnNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpSZXNvbHZlKGlk
ZW50aWZpZXIsIG90aGVySWRlbnRpZmllciksIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICgh
cmVzdWx0KQotICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4
Y2VwdGlvbiB7IGNvbnZlcnRUb0V4Y2VwdGlvbkNvZGUocmVzdWx0LmVycm9yKCkpIH0pOworICAg
ICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGNvbnZlcnRUb0V4Y2VwdGlvbihyZXN1
bHQuZXJyb3IoKSkpOworCisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUocmVzdWx0
LnZhbHVlKCkpKTsKKyAgICB9KTsKK30KKwordm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb246OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OjpHZXRBY2Nlc3NIYW5kbGVDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlm
ICghbV9jb25uZWN0aW9uKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29y
ZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0
IiB9KTsKKworICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpO
ZXR3b3JrU3RvcmFnZU1hbmFnZXI6OkNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoaWRlbnRpZmllciks
IFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIHJl
c3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghcmVzdWx0KQorICAgICAgICAgICAgcmV0dXJu
IGNvbXBsZXRpb25IYW5kbGVyKGNvbnZlcnRUb0V4Y2VwdGlvbihyZXN1bHQuZXJyb3IoKSkpOwog
CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUocmVzdWx0LnZhbHVlKCkpKTsKICAg
ICB9KTsKIH0KIAordm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldFNpemUo
V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIsIEludGVnZXJDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmICghbV9j
b25uZWN0aW9uKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhj
ZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0IiB9KTsK
KworICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3Jr
U3RvcmFnZU1hbmFnZXI6OkdldFNpemVGb3JBY2Nlc3NIYW5kbGUoaWRlbnRpZmllciwgYWNjZXNz
SGFuZGxlSWRlbnRpZmllciksIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghcmVzdWx0KQor
ICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGNvbnZlcnRUb0V4Y2VwdGlvbihy
ZXN1bHQuZXJyb3IoKSkpOworCisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHJlc3VsdC52YWx1
ZSgpKTsKKyAgICB9KTsKK30KKwordm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246
OnRydW5jYXRlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIs
IFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXplLCBWb2lkQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3sKKyAgICBpZiAoIW1fY29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRp
b25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNv
bm5lY3Rpb24gaXMgbG9zdCIgfSk7CisKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNS
ZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpUcnVuY2F0ZUZvckFjY2Vzc0hh
bmRsZShpZGVudGlmaWVyLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBzaXplKSwgW2NvbXBsZXRp
b25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8gZXJyb3IpIG11dGFi
bGUgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjb252ZXJ0VG9FeGNlcHRpb25PcihlcnJv
cikpOworICAgIH0pOworfQorCit2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6
Zmx1c2goV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2Vi
Q29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIsIFZvaWRDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmICgh
bV9jb25uZWN0aW9uKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6
RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0IiB9
KTsKKworICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3
b3JrU3RvcmFnZU1hbmFnZXI6OkZsdXNoRm9yQWNjZXNzSGFuZGxlKGlkZW50aWZpZXIsIGFjY2Vz
c0hhbmRsZUlkZW50aWZpZXIpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKV0oYXV0byBlcnJvcikgbXV0YWJsZSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKGNvbnZlcnRUb0V4Y2VwdGlvbk9yKGVycm9yKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2Vi
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjbG9zZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgVm9pZENhbGxiYWNrJiYgY29t
cGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVy
biBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpVbmtub3du
RXJyb3IsICJDb25uZWN0aW9uIGlzIGxvc3QiIH0pOworCisgICAgbV9jb25uZWN0aW9uLT5zZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Q2xvc2VBY2Nl
c3NIYW5kbGUoaWRlbnRpZmllciwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciksIFtjb21wbGV0aW9u
SGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIGVycm9yKSBtdXRhYmxl
IHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY29udmVydFRvRXhjZXB0aW9uT3IoZXJyb3Ip
KTsKKyAgICB9KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKaW5kZXggYjYwMWJlNjQzNTNkYWZjNzc3YzZi
Y2U0MmIxZTlmMjkxMzkyMzBjMi4uZTA3MmU5ZjkzMjM0ZTdmMmE2ZTY5MTc0YzdlNjk0ZjM4ZmFk
NWE3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaApA
QCAtNTEsOSArNTEsMTUgQEAgcHJpdmF0ZToKICAgICB2b2lkIGlzU2FtZUVudHJ5KFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpTYW1lRW50cnlD
YWxsYmFjayYmKTsKICAgICB2b2lkIGdldEZpbGVIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2Fy
eSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRIYW5kbGVDYWxsYmFj
ayYmKTsKICAgICB2b2lkIGdldERpcmVjdG9yeUhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5
LCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhhbmRsZUNhbGxiYWNr
JiYpOwotICAgIHZvaWQgcmVtb3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgV2ViQ29y
ZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpSZW1vdmVFbnRyeUNhbGxiYWNrJiYpOwor
ICAgIHZvaWQgcmVtb3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgV2ViQ29yZTo6Rmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJik7CiAgICAgdm9pZCByZXNv
bHZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OjpSZXNvbHZlQ2FsbGJhY2smJik7CiAKKyAgICB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUo
V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6R2V0QWNjZXNzSGFuZGxlQ2FsbGJhY2smJikgZmluYWw7CisgICAg
dm9pZCBnZXRTaXplKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3Jl
OjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbjo6SW50ZWdlckNhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQg
dHJ1bmNhdGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSwgV2ViQ29y
ZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJikgZmluYWw7Cisg
ICAgdm9pZCBmbHVzaChXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29y
ZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIGNs
b3NlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbjo6Vm9pZENhbGxiYWNrJiYpIGZpbmFsOworCiAgICAgUmVmUHRyPElQQzo6Q29u
bmVjdGlvbj4gbV9jb25uZWN0aW9uOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9yYWdlQ29ubmVjdGlvbi5j
cHAKaW5kZXggMmFjYjVmYWFmM2Y0NmQ3Zjg0ZGJiYmI4NzMzMmQzMzY1NDkwMzc2ZC4uZTcwOTA1
MDczOTkyYWRlNGY0OTcxYTQ3NjBjMDI3Mzc4MzdmYTgxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlN0b3JhZ2VDb25uZWN0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3RvcmFnZUNv
bm5lY3Rpb24uY3BwCkBAIC01Niw3ICs1Niw3IEBAIHZvaWQgV2ViU3RvcmFnZUNvbm5lY3Rpb246
OmZpbGVTeXN0ZW1HZXREaXJlY3RvcnkoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvCiAg
ICAgYXV0byYgY29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKTsKICAgICBjb25uZWN0aW9uLnNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpGaWxlU3lzdGVt
R2V0RGlyZWN0b3J5KG9yaWdpbiksIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghcmVzdWx0
KQotICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlv
biB7IGNvbnZlcnRUb0V4Y2VwdGlvbkNvZGUocmVzdWx0LmVycm9yKCkpIH0pOworICAgICAgICAg
ICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGNvbnZlcnRUb0V4Y2VwdGlvbihyZXN1bHQuZXJy
b3IoKSkpOwogCiAgICAgICAgIGF1dG8gaWRlbnRpZmllciA9IHJlc3VsdC52YWx1ZSgpOwogICAg
ICAgICBpZiAoIWlkZW50aWZpZXIuaXNWYWxpZCgpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGI0YjY3Njg1ZmNiMDFiYjdl
NTVlZWQyMDkwYWY3NTRiMzg5MDRjYzIuLjVkODA3M2ZlOWE4ZjBjNmNkZTZkNTU3NDcwNDVjYmYz
ZTQ3NmI1M2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0xMC0wNSAgU2lodWkgTGl1ICA8
c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMTE4NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODM4NDc4NTk+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdG9yYWdlL2Zp
bGVzeXN0ZW1hY2Nlc3MvcmVzb3VyY2VzL3N5bmMtYWNjZXNzLWhhbmRsZS1iYXNpY3MuanM6IEFk
ZGVkLgorICAgICAgICAoZmluaXNoVGVzdCk6CisgICAgICAgIChnZXREaXJlY3RvcnkpOgorICAg
ICAgICAqIHN0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtYmFzaWNz
LXdvcmtlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvZmlsZXN5c3Rl
bWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtYmFzaWNzLXdvcmtlci5odG1sOiBBZGRlZC4KKwog
MjAyMS0xMC0wNSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSRUdSRVNTSU9OIChyMjgzMzM1KTogTW9tZW50dW0gc2Nyb2xsaW5nIGlzIG5vIGxvbmdl
ciBsb2NrZWQgdG8gYW4gYXhpcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggN2M0
Y2Y3YjRhOWUxYTNmZWRlNGExZjA1NzA3M2ZiMGVmZWM4NWVlNi4uMjVhMWY0NDIzZjlhMTE5MjY0
MTI3MjgwNmMxYmQ3OTI1ZWJjNzg2MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMjEtMTAtMDUgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzExODUK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzODQ3ODU5PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZpbGUtc3lz
dGVtLWFjY2Vzcy9zYW5kYm94ZWRfRmlsZVN5c3RlbUZpbGVIYW5kbGUtc3luYy1hY2Nlc3MtaGFu
ZGxlLWxvY2suaHR0cHMudGVudGF0aXZlLndvcmtlci1leHBlY3RlZC50eHQ6CisKIDIwMjEtMTAt
MDUgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFtj
c3MtcG9zaXRpb24tc3RpY2t5XSBzY3JvbGxJbnRvVmlldyBzaG91bGQgbm90IHRha2UgaW50byBh
Y2NvdW50IHN0aWNreSBwb3NpdGlvbmluZyBvZmZzZXRzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZpbGUtc3lzdGVtLWFjY2Vzcy9zYW5k
Ym94ZWRfRmlsZVN5c3RlbUZpbGVIYW5kbGUtc3luYy1hY2Nlc3MtaGFuZGxlLWxvY2suaHR0cHMu
dGVudGF0aXZlLndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZpbGUtc3lzdGVtLWFjY2Vzcy9zYW5kYm94ZWRfRmlsZVN5c3Rl
bUZpbGVIYW5kbGUtc3luYy1hY2Nlc3MtaGFuZGxlLWxvY2suaHR0cHMudGVudGF0aXZlLndvcmtl
ci1leHBlY3RlZC50eHQKaW5kZXggYjQ2MjhhN2RmMjJkZmU4OGE3YjM3MTJmZmIzNjdkZmNjZWVl
ODcwNC4uN2RhZGMyZDRmMDZkODQ0YTIxMmY2NDA0YzBkMWFiOWY1NjM3MGNiOSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9maWxlLXN5c3Rl
bS1hY2Nlc3Mvc2FuZGJveGVkX0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLXN5bmMtYWNjZXNzLWhhbmRs
ZS1sb2NrLmh0dHBzLnRlbnRhdGl2ZS53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmlsZS1zeXN0ZW0tYWNjZXNzL3Nh
bmRib3hlZF9GaWxlU3lzdGVtRmlsZUhhbmRsZS1zeW5jLWFjY2Vzcy1oYW5kbGUtbG9jay5odHRw
cy50ZW50YXRpdmUud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKIAotRkFJTCBU
aGVyZSBjYW4gb25seSBiZSBvbmUgb3BlbiBhY2Nlc3MgaGFuZGxlIGF0IGFueSBnaXZlbiB0aW1l
IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5
cGVFcnJvcjogZmlsZUhhbmRsZS5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlIGlzIG5vdCBhIGZ1bmN0
aW9uLiAoSW4gJ2ZpbGVIYW5kbGUuY3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpJywgJ2ZpbGVIYW5k
bGUuY3JlYXRlU3luY0FjY2Vzc0hhbmRsZScgaXMgdW5kZWZpbmVkKSIKLUZBSUwgQW4gYWNjZXNz
IGhhbmRsZSBmcm9tIG9uZSBmaWxlIGRvZXMgbm90IGludGVyZmVyZSB3aXRoIHRoZSBjcmVhdGlv
biBvZiBhbiBhY2Nlc3MgaGFuZGxlIG9uIGFub3RoZXIgZmlsZSBwcm9taXNlX3Rlc3Q6IFVuaGFu
ZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IGZvb0ZpbGVIYW5k
bGUuY3JlYXRlU3luY0FjY2Vzc0hhbmRsZSBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdmb29GaWxl
SGFuZGxlLmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKScsICdmb29GaWxlSGFuZGxlLmNyZWF0ZVN5
bmNBY2Nlc3NIYW5kbGUnIGlzIHVuZGVmaW5lZCkiCitQQVNTIFRoZXJlIGNhbiBvbmx5IGJlIG9u
ZSBvcGVuIGFjY2VzcyBoYW5kbGUgYXQgYW55IGdpdmVuIHRpbWUKK1BBU1MgQW4gYWNjZXNzIGhh
bmRsZSBmcm9tIG9uZSBmaWxlIGRvZXMgbm90IGludGVyZmVyZSB3aXRoIHRoZSBjcmVhdGlvbiBv
ZiBhbiBhY2Nlc3MgaGFuZGxlIG9uIGFub3RoZXIgZmlsZQogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3MvcmVzb3VyY2VzL3N5bmMtYWNjZXNzLWhhbmRs
ZS1iYXNpY3MuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3MvcmVzb3Vy
Y2VzL3N5bmMtYWNjZXNzLWhhbmRsZS1iYXNpY3MuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTY3MTI1YTQ2ZGM2
YjZlYzNmY2ZlZjEzOTRhODYwOGM4NjUyODcyYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9yZXNvdXJjZXMvc3luYy1hY2Nlc3MtaGFuZGxl
LWJhc2ljcy5qcwpAQCAtMCwwICsxLDgxIEBACitpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7Cisg
ICAgaW1wb3J0U2NyaXB0cygnLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMnKTsKK30KKwor
ZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgYmFzaWMgZnVudGlvbmFsaXRpZXMgb2YgRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuIik7CisKK3ZhciByb290SGFuZGxlLCBmaWxlSGFuZGxl
LCBhY2Nlc3NIYW5kbGUxLCBhY2Nlc3NIYW5kbGUyLCBjcmVhdGVFcnJvcjsKKworZnVuY3Rpb24g
ZmluaXNoVGVzdChlcnJvcikKK3sKKyAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgdGVzdEZhaWxl
ZChlcnJvcik7CisgICAgfQorICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitmdW5jdGlvbiBnZXRE
aXJlY3RvcnkoKSB7CisgICAgbmF2aWdhdG9yLnN0b3JhZ2UuZ2V0RGlyZWN0b3J5KCkudGhlbigo
aGFuZGxlKSA9PiB7CisgICAgICAgIHJvb3RIYW5kbGUgPSBoYW5kbGU7CisgICAgICAgIGNyZWF0
ZUZpbGVIYW5kbGUocm9vdEhhbmRsZSk7CisgICAgfSkuY2F0Y2goKGVycm9yKSA9PiB7CisgICAg
ICAgIGZpbmlzaFRlc3QoZXJyb3IpOworICAgIH0pOworfQorCitmdW5jdGlvbiBjcmVhdGVGaWxl
SGFuZGxlKGZyb21IYW5kbGUpIHsKKyAgICBmcm9tSGFuZGxlLmdldEZpbGVIYW5kbGUoInN5bmMt
YWNjZXNzLWhhbmRsZS50eHQiLCB7ICJjcmVhdGUiIDogdHJ1ZSB9KS50aGVuKChoYW5kbGUpID0+
IHsKKyAgICAgICAgZmlsZUhhbmRsZSA9IGhhbmRsZTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJmaWxlSGFuZGxlLm5hbWUiLCAic3luYy1hY2Nlc3MtaGFuZGxlLnR4dCIpOworICAg
ICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImZpbGVIYW5kbGUua2luZCIsICJmaWxlIik7Cisg
ICAgICAgIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoZmlsZUhhbmRsZSk7CisgICAgfSkuY2F0Y2go
KGVycm9yKSA9PiB7CisgICAgICAgIGZpbmlzaFRlc3QoZXJyb3IpOworICAgIH0pOworfQorCitm
dW5jdGlvbiBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKGZyb21IYW5kbGUpIHsKKyAgICBmcm9tSGFu
ZGxlLmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKS50aGVuKChoYW5kbGUpID0+IHsKKyAgICAgICAg
YWNjZXNzSGFuZGxlMSA9IGhhbmRsZTsKKyAgICAgICAgZGVidWcoImFjY2Vzc0hhbmRsZTEgaXMg
Y3JlYXRlZCIpOworICAgICAgICBnZXRTaXplKGFjY2Vzc0hhbmRsZTEpOworICAgIH0pLmNhdGNo
KChlcnJvcikgPT4geworICAgICAgICBmaW5pc2hUZXN0KGVycm9yKTsKKyAgICB9KTsKK30KKwor
ZnVuY3Rpb24gZ2V0U2l6ZShhY2Nlc3NIYW5kbGUpIHsKKyAgICBhY2Nlc3NIYW5kbGUuZ2V0U2l6
ZSgpLnRoZW4oKHJlc3VsdCkgPT4geworICAgICAgICBzaXplID0gcmVzdWx0OworICAgICAgICBz
aG91bGRCZSgic2l6ZSIsICIwIik7CisgICAgICAgIGNyZWF0ZVNlY29uZFN5bmNBY2Vzc0hhbmRs
ZShmaWxlSGFuZGxlKTsKKyAgICB9KS5jYXRjaCgoZXJyb3IpID0+IHsKKyAgICAgICAgZmluaXNo
VGVzdChlcnJvcik7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZVNlY29uZFN5bmNBY2Vz
c0hhbmRsZShmcm9tSGFuZGxlKSB7CisgICAgZnJvbUhhbmRsZS5jcmVhdGVTeW5jQWNjZXNzSGFu
ZGxlKCkudGhlbigoaGFuZGxlKSA9PiB7CisgICAgICAgIGFjY2Vzc0hhbmRsZTIgPSBoYW5kbGU7
CisgICAgICAgIC8vIFNlY29uZCBjcmVhdGlvbiBzaG91bGQgc3VjY2VlZC4KKyAgICAgICAgZGVi
dWcoImFjY2Vzc0hhbmRsZTIgaXMgY3JlYXRlZCIpOworICAgICAgICBmaW5pc2hUZXN0KCk7Cisg
ICAgfSkuY2F0Y2goKGVycm9yKSA9PiB7CisgICAgICAgIC8vIEZpcnN0IGNyZWF0aW9uIHNob3Vs
ZCBmYWlsIGFzIHRoZXJlIGlzIGFuIGFjdGl2ZSBoYW5kbGUuCisgICAgICAgIGNyZWF0ZUVycm9y
ID0gZXJyb3I7CisgICAgICAgIGRlYnVnKCJhY2Nlc3NIYW5kbGUyIGNhbm5vdCBiZSBjcmVhdGVk
Iik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiY3JlYXRlRXJyb3IudG9TdHJpbmco
KSIsICJJbnZhbGlkU3RhdGVFcnJvcjogVGhlIG9iamVjdCBpcyBpbiBhbiBpbnZhbGlkIHN0YXRl
LiIpOworICAgICAgICBjbG9zZSgpOworICAgIH0pOworfQorCitmdW5jdGlvbiBjbG9zZSgpIHsK
KyAgICBhY2Nlc3NIYW5kbGUxLmNsb3NlKCkudGhlbigocmVzdWx0KSA9PiB7CisgICAgICAgIGRl
YnVnKCJhY2Nlc3NIYW5kbGUxIGlzIGNsb3NlZCIpOworICAgICAgICBjcmVhdGVTZWNvbmRTeW5j
QWNlc3NIYW5kbGUoZmlsZUhhbmRsZSk7CisgICAgfSkuY2F0Y2goKGVycm9yKSA9PiB7CisgICAg
ICAgIGZpbmlzaFRlc3QoZXJyb3IpOworICAgIH0pOworfQorCitnZXREaXJlY3RvcnkoKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vz
cy1oYW5kbGUtYmFzaWNzLXdvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLWJhc2ljcy13b3JrZXItZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjQ3NGY1ZDcxNTU3MzA3ZTRiZDE0YzE0NmJhOTNhYmQ1MmRiOWE0
ZjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nl
c3Mvc3luYy1hY2Nlc3MtaGFuZGxlLWJhc2ljcy13b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTggQEAKK1tXb3JrZXJdIFRoaXMgdGVzdCBjaGVja3MgYmFzaWMgZnVudGlvbmFsaXRpZXMg
b2YgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitTdGFydGluZyB3b3JrZXI6IHJlc291cmNlcy9zeW5jLWFjY2Vzcy1oYW5kbGUtYmFz
aWNzLmpzCitQQVNTIFtXb3JrZXJdIGZpbGVIYW5kbGUubmFtZSBpcyAic3luYy1hY2Nlc3MtaGFu
ZGxlLnR4dCIKK1BBU1MgW1dvcmtlcl0gZmlsZUhhbmRsZS5raW5kIGlzICJmaWxlIgorW1dvcmtl
cl0gYWNjZXNzSGFuZGxlMSBpcyBjcmVhdGVkCitQQVNTIFtXb3JrZXJdIHNpemUgaXMgMAorW1dv
cmtlcl0gYWNjZXNzSGFuZGxlMiBjYW5ub3QgYmUgY3JlYXRlZAorUEFTUyBbV29ya2VyXSBjcmVh
dGVFcnJvci50b1N0cmluZygpIGlzICJJbnZhbGlkU3RhdGVFcnJvcjogVGhlIG9iamVjdCBpcyBp
biBhbiBpbnZhbGlkIHN0YXRlLiIKK1tXb3JrZXJdIGFjY2Vzc0hhbmRsZTEgaXMgY2xvc2VkCitb
V29ya2VyXSBhY2Nlc3NIYW5kbGUyIGlzIGNyZWF0ZWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLWJhc2ljcy13b3JrZXIuaHRt
bCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5k
bGUtYmFzaWNzLXdvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdmZWMzNmE1OTYwYjRhYWEyMWEyZjgw
YWQxMWNlZDRiN2VjZWQ5ZDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLWJhc2ljcy13b3JrZXIuaHRtbApA
QCAtMCwwICsxLDkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0Pgord29y
a2VyID0gc3RhcnRXb3JrZXIoJ3Jlc291cmNlcy9zeW5jLWFjY2Vzcy1oYW5kbGUtYmFzaWNzLmpz
Jyk7PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQo=
</data>
<flag name="commit-queue"
          id="464118"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440252</attachid>
            <date>2021-10-05 12:55:30 -0700</date>
            <delta_ts>2021-10-05 15:27:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231185-20211005125528.patch</filename>
            <type>text/plain</type>
            <size>102813</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGE4NDgwMmU4NjAzYjY5ZDZiNGYwOWI2
NTQyNjY5ZTQzMTU3ZjQ1N2MuLjkzZWVhNWE0YWE5YWQ4NjQ1MzBkZTYyMTI2OTJkY2E0MWY1ZjBk
Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEtMTAtMDUgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzExODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzODQ3ODU5PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNl
cy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sOgorICAgICAgICAqIHd0Zi9GaWxlU3lz
dGVtLmg6CisgICAgICAgICogd3RmL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3BwOgorICAgICAgICAo
V1RGOjpGaWxlU3lzdGVtSW1wbDo6Zmx1c2hGaWxlKToKKyAgICAgICAgKiB3dGYvcG9zaXgvRmls
ZVN5c3RlbVBPU0lYLmNwcDoKKyAgICAgICAgKFdURjo6RmlsZVN5c3RlbUltcGw6OmZsdXNoRmls
ZSk6CisgICAgICAgICogd3RmL3dpbi9GaWxlU3lzdGVtV2luLmNwcDoKKyAgICAgICAgKFdURjo6
RmlsZVN5c3RlbUltcGw6OmZsdXNoRmlsZSk6CisKIDIwMjEtMTAtMDUgIERhdmlkIEtpbHplciAg
PGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBGb2xsb3ctdXAgIzI6IFdURjo6UmV0YWlu
UHRyPD4gYWxsb3dzIGFzc2lnbm1lbnQgb2YgdHdvIHBvaW50ZXIgdHlwZXMgdGhhdCBhcmUgbm90
IGFzc2lnbmFibGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzNDNiMjc2MjZjOGMyY2NiYTY2NzUwMGJhNzgxZmIy
ZGM2MmEwMjVjLi41ZDY4MGJlZDJlNmVjY2MxOWMyYTI2YjI5ODg3NzFmZGYxYmE0YTg3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNjUgQEAKKzIwMjEtMTAtMDUgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzExODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzODQ3ODU5PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBiYXNpYyBzdXBw
b3J0IGZvciBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSBhcyBwcm9wb3NhbDoKKyAgICAgICAg
aHR0cHM6Ly9naXRodWIuY29tL1dJQ0cvZmlsZS1zeXN0ZW0tYWNjZXNzL2Jsb2IvbWFpbi9BY2Nl
c3NIYW5kbGUubWQKKworICAgICAgICBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSBjYW4gYmUg
Y3JlYXRlZCB2aWEgRmlsZVN5c3RlbUZpbGVIYW5kbGUsIGFuZCBpdCBjb21tdWljYXRlcyB3aXRo
IGJhY2tlbmQgdmlhIAorICAgICAgICBGaWxlU3lzdGVtRmlsZUhhbmRsZS4KKworICAgICAgICBU
ZXN0OiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLWJhc2ljcy13
b3JrZXIuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZl
ZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAq
IEhlYWRlcnMuY21ha2U6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVT
eXN0ZW1GaWxlSGFuZGxlK0FjY2Vzc0hhbmRsZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Z2V0U2l6ZSk6CisgICAgICAg
IChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZTo6dHJ1bmNhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6OmZsdXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkZp
bGVTeXN0ZW1GaWxlSGFuZGxlOjpjbG9zZSk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmg6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGVBY2Nlc3NIYW5kbGUuaDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZUFjY2Vzc0hhbmRsZTo6Y3Jl
YXRlU3luY0FjY2Vzc0hhbmRsZSk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6RmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6
On5GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZTo6dHJ1bmNhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmdldFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmZsdXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZTo6ZGlkQ2xvc2UpOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oOiBBZGRlZC4KKyAgICAgICAgKiBN
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRsOiBB
ZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpzY29wZUNsb3Nl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246
OnJlbW92ZUVudHJ5KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbjo6ZGlkQ3JlYXRlU3luY0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNvbXBsZXRlSW50ZWdlckNhbGxi
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bjo6Y29tcGxldGVWb2lkQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAg
KFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Z2V0U2l6ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnRydW5j
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bjo6Zmx1c2gpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpjbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb246OmRpZFJlbW92ZUVudHJ5KTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg6Cisg
ICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaDoK
KwogMjAyMS0xMC0wNSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSRUdSRVNTSU9OIChyMjgzMzM1KTogTW9tZW50dW0gc2Nyb2xsaW5nIGlzIG5vIGxv
bmdlciBsb2NrZWQgdG8gYW4gYXhpcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBmODVkZjNmMGFlM2I5ZjBjNjNhYTdj
OTEzZTgyNjI3MmZhNWZhM2UzLi5iMzQxODJhYzFkMWVjMzI3MDVjNjdmZWUyYzM2Njc0NDIwNjEx
ZTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIxLTEwLTA1ICBTaWh1aSBMaXUgIDxz
aWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMxMTg1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84Mzg0Nzg1OT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHkgd2Ug
b25seSBhbGxvdyBvbmUgb3BlbiBhY2Nlc3MgaGFuZGxlIG9uIG9uZSBmaWxlLiBTZWNvbmQgYWNj
ZXNzIGhhbmRsZSBjYW4gYmUgY3JlYXRlZCBhZnRlciB0aGUgZmlyc3QKKyAgICAgICAgaXMgY2xv
c2VkLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFn
ZUVycm9yLmg6CisgICAgICAgIChXZWJLaXQ6OmNvbnZlcnRUb0V4Y2VwdGlvbk9yKToKKyAgICAg
ICAgKFdlYktpdDo6Y29udmVydFRvRXhjZXB0aW9uKToKKyAgICAgICAgKFdlYktpdDo6Y29udmVy
dFRvRXhjZXB0aW9uQ29kZSk6IERlbGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3Rv
cmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdl
YktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmdldFNpemUpOgorICAgICAgICAoV2ViS2l0
OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6dHJ1bmNhdGUpOgorICAgICAgICAoV2ViS2l0OjpG
aWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Zmx1c2gpOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZTo6Y2xvc2UpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3Jh
Z2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZp
bGVTeXN0ZW1TdG9yYWdlTWFuYWdlcjo6Y29ubmVjdGlvbkNsb3NlZCk6CisgICAgICAgIChXZWJL
aXQ6OkZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlcjo6YWNxdWlyZUxvY2tGb3JGaWxlKToKKyAgICAg
ICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOjpyZWxlYXNlTG9ja0ZvckZpbGUp
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5h
Z2VyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1h
bmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmNyZWF0
ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU3RvcmFnZU1hbmFn
ZXI6OmdldFNpemVGb3JBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU3Rv
cmFnZU1hbmFnZXI6OnRydW5jYXRlRm9yQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpmbHVzaEZvckFjY2Vzc0hhbmRsZSk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Y2xvc2VBY2Nlc3NIYW5kbGUpOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmg6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2Fn
ZXMuaW46CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgICh0
eXBlc190aGF0X2Nhbm5vdF9iZV9mb3J3YXJkX2RlY2xhcmVkKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Z2V0RmlsZUhh
bmRsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6
Z2V0RGlyZWN0b3J5SGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOjpyZW1vdmVFbnRyeSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbjo6cmVzb2x2ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Z2V0U2l6ZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6dHJ1bmNhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmZsdXNoKToK
KyAgICAgICAgKFdlYktpdDo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjbG9zZSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlN0
b3JhZ2VDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU3RvcmFnZUNvbm5lY3Rp
b246OmZpbGVTeXN0ZW1HZXREaXJlY3RvcnkpOgorCiAyMDIxLTEwLTA0ICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIFNQSSB0byBsYXVuY2ggYSBzZXJ2aWNl
IHNlcnZpY2Ugd29ya2VyIGluIGEgV0tXZWJWaWV3IGFuZCBleHBvc2Ugc2VydmljZSB3b3JrZXIg
dG8gaW5qZWN0ZWQgYnVuZGxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVy
ZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbCBiL1NvdXJjZS9XVEYvU2NyaXB0
cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCmluZGV4IDUyNWU2
MDM1MmY1OGVlNGE1NmViNDg4MGNkMDU0NmQ5YzAzZDZmYWQuLmIxMTI2NDc2MDRmZGE5ZGFkZjQ0
NjQ5NDlmMjFlZWE3OTlmMjVlNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVm
ZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCisrKyBiL1NvdXJjZS9XVEYv
U2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCkBAIC0y
Niw2ICsyNiwxOCBAQAogIyBUaGV5IG11c3QgaW5jbHVkZSBhIGh1bWFuUmVhZGFibGVOYW1lIGFu
ZCBodW1hblJlYWRhYmxlRGVzY3JpcHRpb24uIFRoaXMgaXMKICMgICB0aGUgdGV4dCBleHBvc2Vk
IHRvIHRoZSB1c2VyIGZyb20gdGhlIFdlYktpdCBjbGllbnQuCiAKK0FjY2Vzc0hhbmRsZUVuYWJs
ZWQ6CisgIHR5cGU6IGJvb2wKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJBY2Nlc3NIYW5kbGUgQVBJ
IgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgQWNjZXNzSGFuZGxlIEFQSSIK
KyAgZGVmYXVsdFZhbHVlOgorICAgIFdlYktpdExlZ2FjeToKKyAgICAgIGRlZmF1bHQ6IGZhbHNl
CisgICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAgICBXZWJDb3JlOgorICAgICAg
ZGVmYXVsdDogZmFsc2UKKwogQWNjZXNzaWJpbGl0eU9iamVjdE1vZGVsRW5hYmxlZDoKICAgdHlw
ZTogYm9vbAogICBodW1hblJlYWRhYmxlTmFtZTogIkFjY2Vzc2liaWxpdHkgT2JqZWN0IE1vZGVs
IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5oIGIvU291cmNlL1dURi93
dGYvRmlsZVN5c3RlbS5oCmluZGV4IGM0NTAxZDE0YTc0MmFhMjFmYTZkYzdhNzNmODMwOWVjNmE4
N2Y0ZDUuLmIxMDczNzA2OThlMWFkMWRhNzk0YTdlNDY2Y2MwMDcxMmE3ZDg2NjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9GaWxl
U3lzdGVtLmgKQEAgLTE1NCw2ICsxNTQsNyBAQCBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBjbG9z
ZUZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlJik7CiAvLyBSZXR1cm5zIHRoZSByZXN1bHRpbmcgb2Zm
c2V0IGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgZmlsZSBpZiBzdWNjZXNzZnVsLCAtMSBvdGhl
cndpc2UuCiBXVEZfRVhQT1JUX1BSSVZBVEUgbG9uZyBsb25nIHNlZWtGaWxlKFBsYXRmb3JtRmls
ZUhhbmRsZSwgbG9uZyBsb25nIG9mZnNldCwgRmlsZVNlZWtPcmlnaW4pOwogV1RGX0VYUE9SVF9Q
UklWQVRFIGJvb2wgdHJ1bmNhdGVGaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSwgbG9uZyBsb25nIG9m
ZnNldCk7CitXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCBmbHVzaEZpbGUoUGxhdGZvcm1GaWxlSGFu
ZGxlKTsKIC8vIFJldHVybnMgbnVtYmVyIG9mIGJ5dGVzIGFjdHVhbGx5IHJlYWQgaWYgc3VjY2Vz
c2Z1bCwgLTEgb3RoZXJ3aXNlLgogV1RGX0VYUE9SVF9QUklWQVRFIGludCB3cml0ZVRvRmlsZShQ
bGF0Zm9ybUZpbGVIYW5kbGUsIGNvbnN0IHZvaWQqIGRhdGEsIGludCBsZW5ndGgpOwogLy8gUmV0
dXJucyBudW1iZXIgb2YgYnl0ZXMgYWN0dWFsbHkgd3JpdHRlbiBpZiBzdWNjZXNzZnVsLCAtMSBv
dGhlcndpc2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9nbGliL0ZpbGVTeXN0ZW1HbGli
LmNwcCBiL1NvdXJjZS9XVEYvd3RmL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3BwCmluZGV4IDU0NjI0
NGM3MDQxMDg0Y2I0YjQyZTlmMGFhZWJhOGEyNjI5MDNmZDMuLmY4MTI3ZjBiYTBmNDRlNDllZjI4
NTllMTUxODAwOGMxYjMwNDg0MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2dsaWIvRmls
ZVN5c3RlbUdsaWIuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL2dsaWIvRmlsZVN5c3RlbUdsaWIu
Y3BwCkBAIC0yMTMsNiArMjEzLDExIEBAIGJvb2wgdHJ1bmNhdGVGaWxlKFBsYXRmb3JtRmlsZUhh
bmRsZSBoYW5kbGUsIGxvbmcgbG9uZyBvZmZzZXQpCiAgICAgcmV0dXJuIGdfc2Vla2FibGVfdHJ1
bmNhdGUoR19TRUVLQUJMRShnX2lvX3N0cmVhbV9nZXRfb3V0cHV0X3N0cmVhbShHX0lPX1NUUkVB
TShoYW5kbGUpKSksIG9mZnNldCwgbnVsbHB0ciwgbnVsbHB0cik7CiB9CiAKK2Jvb2wgZmx1c2hG
aWxlKFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUpCit7CisgICAgcmV0dXJuIGdfb3V0cHV0X3N0
cmVhbV9mbHVzaChnX2lvX3N0cmVhbV9nZXRfb3V0cHV0X3N0cmVhbShHX0lPX1NUUkVBTShoYW5k
bGUpKSwgbnVsbHB0ciwgbnVsbHB0cik7Cit9CisKIGludCB3cml0ZVRvRmlsZShQbGF0Zm9ybUZp
bGVIYW5kbGUgaGFuZGxlLCBjb25zdCB2b2lkKiBkYXRhLCBpbnQgbGVuZ3RoKQogewogICAgIGlm
ICghbGVuZ3RoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvcG9zaXgvRmlsZVN5c3RlbVBP
U0lYLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHAKaW5kZXgg
YjEzMzgyNGVjMmExMTVlYTUwYzdjMzRlMGYxYTVlY2U4MDQwMmQ0Yy4uNzk1NjcwZmQ2ZDgwMjc4
ZGY2YzE3MGIyMTYyYzQ4YjUyZTljYmJlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvcG9z
aXgvRmlsZVN5c3RlbVBPU0lYLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9wb3NpeC9GaWxlU3lz
dGVtUE9TSVguY3BwCkBAIC0xMTgsNiArMTE4LDExIEBAIGJvb2wgdHJ1bmNhdGVGaWxlKFBsYXRm
b3JtRmlsZUhhbmRsZSBoYW5kbGUsIGxvbmcgbG9uZyBvZmZzZXQpCiAgICAgcmV0dXJuICFmdHJ1
bmNhdGUoaGFuZGxlLCBvZmZzZXQpOwogfQogCitib29sIGZsdXNoRmlsZShQbGF0Zm9ybUZpbGVI
YW5kbGUgaGFuZGxlKQoreworICAgIHJldHVybiAhZnN5bmMoaGFuZGxlKTsKK30KKwogaW50IHdy
aXRlVG9GaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUsIGNvbnN0IHZvaWQqIGRhdGEsIGlu
dCBsZW5ndGgpCiB7CiAgICAgZG8gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvd2luL0Zp
bGVTeXN0ZW1XaW4uY3BwIGIvU291cmNlL1dURi93dGYvd2luL0ZpbGVTeXN0ZW1XaW4uY3BwCmlu
ZGV4IGZmYTYyOTNjNzNlODRlZWUwYmNlMTJjYzRkMGRhN2NkY2E2MGI4OTMuLjJiYzhmMjAxMDUx
YzdkODViMTdiNDRhYzI3MzhkMmVkMDFmMmQ5NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L3dpbi9GaWxlU3lzdGVtV2luLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi93aW4vRmlsZVN5c3Rl
bVdpbi5jcHAKQEAgLTMwMyw2ICszMDMsMTIgQEAgYm9vbCB0cnVuY2F0ZUZpbGUoUGxhdGZvcm1G
aWxlSGFuZGxlIGhhbmRsZSwgbG9uZyBsb25nIG9mZnNldCkKICAgICByZXR1cm4gU2V0RmlsZUlu
Zm9ybWF0aW9uQnlIYW5kbGUoaGFuZGxlLCBGaWxlRW5kT2ZGaWxlSW5mbywgJmVvZkluZm8sIHNp
emVvZihGSUxFX0VORF9PRl9GSUxFX0lORk8pKTsKIH0KIAorYm9vbCBmbHVzaEZpbGUoUGxhdGZv
cm1GaWxlSGFuZGxlIGhhbmRsZSkKK3sKKyAgICAvLyBOb3QgaW1wbGVtZW50ZWQuCisgICAgcmV0
dXJuIGZhbHNlOworfQorCiBpbnQgd3JpdGVUb0ZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRs
ZSwgY29uc3Qgdm9pZCogZGF0YSwgaW50IGxlbmd0aCkKIHsKICAgICBpZiAoIWlzSGFuZGxlVmFs
aWQoaGFuZGxlKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMzAzOTQ3NTk3MWQ0ZmI3ZjZmOWJk
MWEwNmI4ZmYyNmNjNTAxN2NiZC4uZDhhMTU3NDhmZjlkMzZjYmI1ZDI3OGJhMjRjMTBlN2JmYWUy
YzIwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTI5NSw4ICsyOTUsMTAgQEAgc2V0KFdlYkNv
cmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVzL2ZldGNoL1dpbmRvd09yV29ya2VyR2xv
YmFsU2NvcGUrRmV0Y2guaWRsCiAKICAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbURpcmVjdG9yeUhhbmRsZS5pZGwKKyAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbUZpbGVIYW5kbGUrQWNjZXNzSGFuZGxlLmlkbAogICAgIE1vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5pZGwKICAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5pZGwKKyAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRsCiAgICAgTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL1N0b3JhZ2VNYW5hZ2VyK0ZpbGVTeXN0ZW1BY2Nlc3MuaWRsCiAKICAgICBNb2R1bGVzL2dl
b2xvY2F0aW9uL0dlb2xvY2F0aW9uLmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggYzBiZTg2YTczNTQ0MjJmMWZiZGEwZWEwYzZhZDM0
MTM5OWJlYzkyZS4uNWMzYTQ1NTYwOTQ1NDdmMDRhZmJmYWU4YzM3NTgyZGYwYTBhMDg2NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0x
MjQsOCArMTI0LDEwIEBAICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0
UmVkaXJlY3QuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2Uu
aWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2ZldGNoL1dpbmRvd09yV29ya2VyR2xvYmFsU2Nv
cGUrRmV0Y2guaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZStBY2Nlc3NIYW5kbGUuaWRsCiAkKFBST0pF
Q1RfRElSKS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaWRs
CiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRs
ZS5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9TdG9yYWdlTWFuYWdlcitGaWxlU3lzdGVtQWNjZXNzLmlkbAogJChQUk9KRUNUX0RJUikv
TW9kdWxlcy9nYW1lcGFkL0dhbWVwYWQuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2dhbWVw
YWQvR2FtZXBhZEJ1dHRvbi5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMt
b3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggMjExMTJjZTE2NDdkZDVkNGM2YWY2NTkxOGJmYjM0MmE0
ZGNiY2ViYi4uNDkxZDFjZGI3OWJlM2I4MzNiZGE4MDk4MDFjODY4OTZkMTNmNzYxNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysr
IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTkw
MywxMCArOTAzLDE0IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTRmlsZVN5c3RlbUVudHJ5Q2FsbGJhY2suY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0ZpbGVTeXN0ZW1FbnRyeUNhbGxiYWNrLmgKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRmlsZVN5c3RlbUZpbGVF
bnRyeS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
RmlsZVN5c3RlbUZpbGVFbnRyeS5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU0ZpbGVTeXN0ZW1GaWxlSGFuZGxlK0FjY2Vzc0hhbmRsZS5jcHAKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRmlsZVN5c3RlbUZpbGVI
YW5kbGUrQWNjZXNzSGFuZGxlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRmlsZVN5c3RlbUhhbmRs
ZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRmls
ZVN5c3RlbUhhbmRsZS5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcAorJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5o
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0ZpbGxNb2Rl
LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNGaWxs
TW9kZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0Zv
Y3VzRXZlbnQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5t
YWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA5MmQzYzQ3MTk2
MGJjYzcyZTg5MjkwNjNlYWY1YjU3ZDk3NDNiZTU0Li43YTIzYTJiMDk0OGMzM2FhMThlMzQxN2Fm
ZjVmN2FiNzM3M2M0ZWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTE1NCw3
ICsxNTQsOSBAQCBKU19CSU5ESU5HX0lETFMgOj0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9m
ZXRjaC9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlK0ZldGNoLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5pZGwg
XAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxl
SGFuZGxlLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbUZpbGVIYW5kbGUrQWNjZXNzSGFuZGxlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5pZGwgXAorCSQoV2ViQ29yZSkv
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbCBc
CiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvU3RvcmFnZU1hbmFnZXIr
RmlsZVN5c3RlbUFjY2Vzcy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9nYW1lcGFkL0dh
bWVwYWQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkQnV0dG9u
LmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNl
L1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCAzOTRjYjNiYjZlMWEzMjcyNDk1MWIyMjY1N2Vk
OTU5OWZkMzc4ZjgyLi4xNWIxNTU2Y2I4MmJlYjM3ZWY3YzY2YTQxOGI4ZGIyNGIyNWNlMWQ0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UKQEAgLTM5LDkgKzM5LDEyIEBAIHNldChXZWJDb3JlX1BSSVZBVEVf
RlJBTUVXT1JLX0hFQURFUlMKIAogICAgIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lz
dGVtRGlyZWN0b3J5SGFuZGxlLmgKICAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbUZpbGVIYW5kbGUuaAorICAgIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
RmlsZUhhbmRsZUFjY2Vzc0hhbmRsZS5oCiAgICAgTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1IYW5kbGUuaAogICAgIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllci5oCiAgICAgTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCisgICAgTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKKyAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLmgKICAgICBNb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvU3RvcmFnZU1hbmFnZXJGaWxlU3lzdGVtQWNjZXNzLmgKICAgICBNb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKICAgICBN
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
Q2FsbGJhY2tJZGVudGlmaWVyLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZStBY2Nlc3NIYW5kbGUuaWRsIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFu
ZGxlK0FjY2Vzc0hhbmRsZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzY3MDRmMDc5NWJlYjU5YzE5ZDY4YzYw
NzFkMzJhOWUyOWExM2Q5YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZStBY2Nlc3NIYW5kbGUuaWRs
CkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEJ5U2V0dGluZz1B
Y2Nlc3NIYW5kbGVFbmFibGVkLAorICAgIFNlY3VyZUNvbnRleHQsCisgICAgSW1wbGVtZW50ZWRC
eT1GaWxlU3lzdGVtRmlsZUhhbmRsZUFjY2Vzc0hhbmRsZSwKK10gcGFydGlhbCBpbnRlcmZhY2Ug
RmlsZVN5c3RlbUZpbGVIYW5kbGUgeworICAgIFtFeHBvc2VkPVdvcmtlcl0gUHJvbWlzZTxGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4gY3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpOworfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lz
dGVtRmlsZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCmluZGV4IGIyMTI1NDdiNWZlOWI5YmQyNTY3ZmIx
YjA5NDgwYmJkZDBmMTlmNjcuLmE2OWE3MmM2YjY4YTJkNmNkNDVjOGZiNzM0NGJhNDNiNTg3MzMx
NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9G
aWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcApAQCAtMjcsNyArMjcsOSBAQAog
I2luY2x1ZGUgIkZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgiCiAKICNpbmNsdWRlICJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZS5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisjaW5jbHVkZSAiSlNGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVz
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ5LDUgKzUxLDQxIEBAIHZvaWQgRmlsZVN5
c3RlbUZpbGVIYW5kbGU6OmdldEZpbGUoRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxG
aWxlPj4mJiBwcm9tCiAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVk
RXJyb3IsICJOb3QgaW1wbGVtZW50ZWQiX3MgfSk7CiB9CiAKK3ZvaWQgRmlsZVN5c3RlbUZpbGVI
YW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRE9NUHJvbWlzZURlZmVycmVkPElETEludGVy
ZmFjZTxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4+JiYgcHJvbWlzZSkKK3sKKyAgICBjb25u
ZWN0aW9uKCkuY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShpZGVudGlmaWVyKCksIFtwcm90ZWN0ZWRU
aGlzID0gUmVmIHsgKnRoaXMgfSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVz
dWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKKyAgICAg
ICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsK
KworICAgICAgICBwcm9taXNlLnNldHRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y3Jl
YXRlKHByb3RlY3RlZFRoaXMuZ2V0KCksIHJlc3VsdC5yZXR1cm5WYWx1ZSgpKSk7CisgICAgfSk7
Cit9CisKK3ZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmdldFNpemUoRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIERPTVByb21pc2VE
ZWZlcnJlZDxJRExVbnNpZ25lZExvbmdMb25nPiYmIHByb21pc2UpCit7CisgICAgY29ubmVjdGlv
bigpLmdldFNpemUoaWRlbnRpZmllcigpLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBbcHJvbWlz
ZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgcHJv
bWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKKyAgICB9KTsKK30KKwordm9pZCBGaWxlU3lz
dGVtRmlsZUhhbmRsZTo6dHJ1bmNhdGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBET01Q
cm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQoreworICAgIGNvbm5lY3Rpb24oKS50cnVu
Y2F0ZShpZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHNpemUsIFtwcm9taXNl
ID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgICAgICBwcm9t
aXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOworICAgIH0pOworfQorCit2b2lkIEZpbGVTeXN0
ZW1GaWxlSGFuZGxlOjpmbHVzaChGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIg
YWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlz
ZSkKK3sKKyAgICBjb25uZWN0aW9uKCkuZmx1c2goaWRlbnRpZmllcigpLCBhY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyLCBbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRh
YmxlIHsKKyAgICAgICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKKyAgICB9KTsK
K30KKwordm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y2xvc2UoRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7Cisg
ICAgY29ubmVjdGlvbigpLmNsb3NlKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmll
ciwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgKaW5kZXggMjUwMDVjMjEzMzhiZTc4NmE5
OWYyMGI4ZmFhZGUzYzEyYTdhZGNkNS4uYWZjZWExZjcwMTM3OTA4ZmUxYzc0MGUxZmZlZWIxZGU3
ODE0NDE1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgKQEAgLTI2LDEwICsyNiwxMyBA
QAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJGaWxlU3lzdGVtSGFuZGxlLmgiCisjaW5jbHVk
ZSAiRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgRmlsZTsKK2NsYXNzIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
OwordGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIEV4Y2VwdGlvbk9yOwogCiBjbGFzcyBGaWxlU3lz
dGVtRmlsZUhhbmRsZSBmaW5hbCA6IHB1YmxpYyBGaWxlU3lzdGVtSGFuZGxlIHsKICAgICBXVEZf
TUFLRV9JU09fQUxMT0NBVEVEKEZpbGVTeXN0ZW1GaWxlSGFuZGxlKTsKQEAgLTM3LDYgKzQwLDEy
IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZpbGVTeXN0ZW1GaWxl
SGFuZGxlPiBjcmVhdGUoU3RyaW5nJiYsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZWY8
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsKICAgICB2b2lkIGdldEZpbGUoRE9NUHJv
bWlzZURlZmVycmVkPElETEludGVyZmFjZTxGaWxlPj4mJik7CiAKKyAgICB2b2lkIGNyZWF0ZVN5
bmNBY2Nlc3NIYW5kbGUoRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZT4+JiYpOworICAgIHZvaWQgZ2V0U2l6ZShGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIsIERPTVByb21pc2VEZWZlcnJlZDxJRExVbnNpZ25lZExvbmdM
b25nPiYmKTsKKyAgICB2b2lkIHRydW5jYXRlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgdW5zaWduZWQgbG9uZyBsb25nIHNpemUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lk
PiYmKTsKKyAgICB2b2lkIGZsdXNoKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
ciwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOworICAgIHZvaWQgY2xvc2UoRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2Vw
dGlvbk9yPHZvaWQ+JiYpPiYmKTsKKwogcHJpdmF0ZToKICAgICBGaWxlU3lzdGVtRmlsZUhhbmRs
ZShTdHJpbmcmJiwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24+JiYpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaWRsCmlu
ZGV4IDllNmFhODg1NmVkOTdiNmNiYTQ2Mzg1MDVhZmFhMWU1NWE2ZDk1ZjUuLjE2ZDM1YzBiOWI2
YjM3YzdmMTJjZjlmOGI5NjA0NjUxNTY2ZmZjNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFu
ZGxlLmlkbApAQCAtMjMsMTEgKzIzLDEyIEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCiAgKi8KIAorLy8gaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9maWxlLXN5c3RlbS1hY2Nl
c3MvI2FwaS1maWxlc3lzdGVtaGFuZGxlCisKIFsKICAgICBFbmFibGVkQnlTZXR0aW5nPUZpbGVT
eXN0ZW1BY2Nlc3NFbmFibGVkLAogICAgIEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpLAogICAgIFNl
Y3VyZUNvbnRleHQKIF0gaW50ZXJmYWNlIEZpbGVTeXN0ZW1GaWxlSGFuZGxlIDogRmlsZVN5c3Rl
bUhhbmRsZSB7CiAgICAgUHJvbWlzZTxGaWxlPiBnZXRGaWxlKCk7Ci0gICAgLy8gRklYTUU6IGFk
ZCBQcm9taXNlPEZpbGVTeXN0ZW1Xcml0YWJsZUZpbGVTdHJlYW0+IGNyZWF0ZVdyaXRhYmxlKG9w
dGlvbmFsIEZpbGVTeXN0ZW1DcmVhdGVXcml0YWJsZU9wdGlvbnMgb3B0aW9ucyk7CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1GaWxlSGFuZGxlQWNjZXNzSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGVBY2Nlc3NIYW5kbGUuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42OTliNWFkNGMzYzNkZTZhZmUzMWNiOTczNGZkZDUyMjI2YmI0ZTAwCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1G
aWxlSGFuZGxlQWNjZXNzSGFuZGxlLmgKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaW5jbHVkZSAiRmlsZVN5c3RlbUZpbGVIYW5kbGUuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBGaWxlU3lzdGVtRmlsZUhhbmRsZUFjY2Vzc0hhbmRsZSB7
CitwdWJsaWM6CisgICAgc3RhdGljIHZvaWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lz
dGVtRmlsZUhhbmRsZSYgc291cmNlLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPj4mJiBwcm9taXNlKQorICAgIHsKKyAgICAgICAgc291
cmNlLmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV1RGTW92ZShwcm9taXNlKSk7CisgICAgfQorfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uLmgKaW5kZXggZTYwNWE2N2Q5MmFiNDM2ZmQ2NDgzZTM3OGI2ZjYzOGI0ZDgxYWEw
ZC4uNGMwZjNiMDBmYTJkY2Y4NjY4NTNhZWI2MTQwZWM2NGEzNzM1ZGE3OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdt
YSBvbmNlCiAKICNpbmNsdWRlICJGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllci5oIgorI2luY2x1
ZGUgIkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgPHd0
Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRl
ZC5oPgogCkBAIC0zOCwxNSArMzksMjQgQEAgdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIEV4Y2Vw
dGlvbk9yOwogY2xhc3MgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uIDogcHVibGljIFRocmVh
ZFNhZmVSZWZDb3VudGVkPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4gewogcHVibGljOgog
ICAgIHZpcnR1YWwgfkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbigpIHsgfQorCiAgICAgdXNp
bmcgU2FtZUVudHJ5Q2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9y
PGJvb2w+JiYpPjsKICAgICB1c2luZyBHZXRIYW5kbGVDYWxsYmFjayA9IENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoRXhjZXB0aW9uT3I8RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXI+JiYpPjsKLSAg
ICB1c2luZyBSZW1vdmVFbnRyeUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNl
cHRpb25Pcjx2b2lkPiYmKT47CiAgICAgdXNpbmcgUmVzb2x2ZUNhbGxiYWNrID0gQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxWZWN0b3I8U3RyaW5nPj4mJik+OworICAgIHVzaW5n
IEdldEFjY2Vzc0hhbmRsZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRp
b25PcjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXI+JiYpPjsKKyAgICB1c2lu
ZyBWb2lkQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+
JiYpPjsKKyAgICB1c2luZyBJbnRlZ2VyQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KEV4Y2VwdGlvbk9yPHVpbnQ2NF90PiYmKT47CisKICAgICB2aXJ0dWFsIHZvaWQgaXNTYW1lRW50
cnkoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
LCBTYW1lRW50cnlDYWxsYmFjayYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGdldEZpbGVIYW5k
bGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBj
cmVhdGVJZk5lY2Vzc2FyeSwgR2V0SGFuZGxlQ2FsbGJhY2smJikgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBnZXREaXJlY3RvcnlIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgR2V0SGFuZGxlQ2FsbGJhY2sm
JikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBSZW1v
dmVFbnRyeUNhbGxiYWNrJiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlRW50cnkoRmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVS
ZWN1cnNpdmVseSwgVm9pZENhbGxiYWNrJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVzb2x2
ZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIs
IFJlc29sdmVDYWxsYmFjayYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVN5bmNBY2Nl
c3NIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEdldEFjY2Vzc0hhbmRsZUNhbGxi
YWNrJiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0U2l6ZShGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBJbnRlZ2VyQ2Fs
bGJhY2smJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB0cnVuY2F0ZShGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1aW50NjRf
dCBzaXplLCBWb2lkQ2FsbGJhY2smJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBmbHVzaChGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyLCBWb2lkQ2FsbGJhY2smJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjbG9zZShGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVy
LCBWb2lkQ2FsbGJhY2smJikgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmFkNGI5
YTg0Yjg0OWQ1YmNlNDdjMzRhM2YwYjZkNjFkZTc2ZDJhYgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZS5jcHAKQEAgLTAsMCArMSw4NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oIgorCisjaW5jbHVk
ZSAiQnVmZmVyU291cmNlLmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKKyNpbmNsdWRlICJG
aWxlU3lzdGVtRmlsZUhhbmRsZS5oIgorI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgi
CisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworUmVmPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPiBGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZTo6Y3JlYXRlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiBzb3VyY2UsIEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKHNvdXJjZSwgaWRlbnRpZmllcikp
OworfQorCitGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUmIHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAgOiBtX3NvdXJjZShzb3VyY2UpCisgICAg
LCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKK3sKK30KKworRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU6On5GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSgpCit7CisgICAgaWYgKCFtX2lzQ2xv
c2VkKQorICAgICAgICBtX3NvdXJjZS0+Y2xvc2UobV9pZGVudGlmaWVyLCBbXShhdXRvKSB7IH0p
OworfQorCit2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjp0cnVuY2F0ZSh1bnNpZ25l
ZCBsb25nIGxvbmcgc2l6ZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3sK
KyAgICBtX3NvdXJjZS0+dHJ1bmNhdGUobV9pZGVudGlmaWVyLCBzaXplLCBXVEZNb3ZlKHByb21p
c2UpKTsKK30KKwordm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Z2V0U2l6ZShET01Q
cm9taXNlRGVmZXJyZWQ8SURMVW5zaWduZWRMb25nTG9uZz4mJiBwcm9taXNlKQoreworICAgIG1f
c291cmNlLT5nZXRTaXplKG1faWRlbnRpZmllciwgV1RGTW92ZShwcm9taXNlKSk7Cit9CisKK3Zv
aWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmZsdXNoKERPTVByb21pc2VEZWZlcnJlZDx2
b2lkPiYmIHByb21pc2UpCit7CisgICAgbV9zb3VyY2UtPmZsdXNoKG1faWRlbnRpZmllciwgV1RG
TW92ZShwcm9taXNlKSk7Cit9CisKK3ZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNs
b3NlKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCit7CisgICAgaWYgKG1faXND
bG9zZWQpCisgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlk
U3RhdGVFcnJvciB9KTsKKworICAgIG1fc291cmNlLT5jbG9zZShtX2lkZW50aWZpZXIsIFt3ZWFr
VGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1
dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAgICAgICAg
d2Vha1RoaXMtPmRpZENsb3NlKCk7CisKKyAgICAgICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShy
ZXN1bHQpKTsKKyAgICB9KTsKK30KKwordm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6
ZGlkQ2xvc2UoKQoreworICAgIG1faXNDbG9zZWQgPSB0cnVlOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjI5ZTQxNTdiNjU0MWI5M2U2ZWE1ZmUwMjM3ZjBjZjIxNWQwM2MzYmYKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGUuaApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpbmNsdWRlICJGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIu
aCIKKyNpbmNsdWRlICJJRExUeXBlcy5oIgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRmlsZVN5c3RlbUZpbGVIYW5kbGU7Cit0ZW1wbGF0
ZTx0eXBlbmFtZT4gY2xhc3MgRE9NUHJvbWlzZURlZmVycmVkOworCitjbGFzcyBGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZSA6IHB1YmxpYyBSZWZDb3VudGVkPEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
PiB7CitwdWJsaWM6CisgICAgc3RydWN0IEZpbGVzeXN0ZW1SZWFkV3JpdGVPcHRpb25zIHsKKyAg
ICAgICAgdW5zaWduZWQgbG9uZyBsb25nIGF0OworICAgIH07CisKKyAgICBzdGF0aWMgUmVmPEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPiBjcmVhdGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUmLCBG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpOworICAgIH5GaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZSgpOworCisgICAgdm9pZCB0cnVuY2F0ZSh1bnNpZ25lZCBsb25nIGxvbmcg
c2l6ZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOworICAgIHZvaWQgZ2V0U2l6ZShET01Q
cm9taXNlRGVmZXJyZWQ8SURMVW5zaWduZWRMb25nTG9uZz4mJik7CisgICAgdm9pZCBmbHVzaChE
T01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CisgICAgdm9pZCBjbG9zZShET01Qcm9taXNlRGVm
ZXJyZWQ8dm9pZD4mJik7CisgICAgdm9pZCBkaWRDbG9zZSgpOworCitwcml2YXRlOgorICAgIEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiwgRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyKTsKKworICAgIFJlZjxGaWxlU3lzdGVtRmlsZUhh
bmRsZT4gbV9zb3VyY2U7CisgICAgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVy
IG1faWRlbnRpZmllcjsKKyAgICBib29sIG1faXNDbG9zZWQgeyBmYWxzZSB9OworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMTEyMDY0YTZkZjYxMWM0MTIxZTI1YzcxMDJmMDMzMDNjZTQ0OTRh
YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5pZGwKQEAgLTAsMCArMSw0MCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKK1sKKyAgICBFbmFibGVkQnlTZXR0aW5nPUFjY2Vzc0hhbmRsZUVuYWJsZWQsCisg
ICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKKyAgICBFeHBvc2VkPURlZGljYXRlZFdvcmtl
ciwKKyAgICBTZWN1cmVDb250ZXh0CitdIGludGVyZmFjZSBGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZSB7CisgICAgUHJvbWlzZTx1bmRlZmluZWQ+IHRydW5jYXRlKFtFbmZvcmNlUmFuZ2VdIHVu
c2lnbmVkIGxvbmcgbG9uZyBzaXplKTsKKyAgICBQcm9taXNlPHVuc2lnbmVkIGxvbmcgbG9uZz4g
Z2V0U2l6ZSgpOworICAgIFByb21pc2U8dW5kZWZpbmVkPiBmbHVzaCgpOworICAgIFByb21pc2U8
dW5kZWZpbmVkPiBjbG9zZSgpOworfTsKKworZGljdGlvbmFyeSBGaWxlc3lzdGVtUmVhZFdyaXRl
T3B0aW9ucyB7CisgICAgW0VuZm9yY2VSYW5nZV0gdW5zaWduZWQgbG9uZyBsb25nIGF0OworfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zMTM1MWJmMmQ5NGU1ZjNhN2U2MWM2OTljYWI4MjdhMTc4YjYxNzVkCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oCkBAIC0wLDAgKzEsMzYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlm
aWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlSWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyVHlwZT47CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcAppbmRleCA0NWVi
M2VjOTViNzY1MWU3YzE1ZTMwYTY5OWM0NzRiNjU1MmQ0M2NkLi5mYTdmNjY5MzU3MTYwYjc5MWRj
MjVhMWEzMjA4M2RhMjY5ODU2NmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcApAQCAtNjQsNyArNjQsNyBAQCB2b2lkIFdvcmtlckZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6c2NvcGVDbG9zZWQoKQogICAgIGZvciAoYXV0byYg
Y2FsbGJhY2sgOiBnZXRIYW5kbGVDYWxsYmFja3MudmFsdWVzKCkpCiAgICAgICAgIGNhbGxiYWNr
KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOwogCi0gICAgYXV0byByZW1vdmVFbnRy
eUNhbGxiYWNrcyA9IHN0ZDo6ZXhjaGFuZ2UobV9yZW1vdmVFbnRyeUNhbGxiYWNrcywgeyB9KTsK
KyAgICBhdXRvIHJlbW92ZUVudHJ5Q2FsbGJhY2tzID0gc3RkOjpleGNoYW5nZShtX3ZvaWRDYWxs
YmFja3MsIHsgfSk7CiAgICAgZm9yIChhdXRvJiBjYWxsYmFjayA6IHJlbW92ZUVudHJ5Q2FsbGJh
Y2tzLnZhbHVlcygpKQogICAgICAgICBjYWxsYmFjayhFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVF
cnJvciB9KTsKIApAQCAtMTQ3LDE5ICsxNDcsMTkgQEAgdm9pZCBXb3JrZXJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb246OmRpZEdldEhhbmRsZShDYWxsYmFja0lkZW50aWZpZXIgY2FsbGJhY2sK
ICAgICAgICAgY2FsbGJhY2soV1RGTW92ZShyZXN1bHQpKTsKIH0KIAotdm9pZCBXb3JrZXJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnJlbW92ZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNp
dmVseSwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpSZW1vdmVFbnRyeUNhbGxiYWNrJiYg
Y2FsbGJhY2spCit2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6cmVtb3Zl
RW50cnkoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b246OlZvaWRDYWxsYmFjayYmIGNhbGxiYWNrKQogewogICAgIGlmICghbV9zY29wZSkKICAgICAg
ICAgcmV0dXJuIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOwogCiAg
ICAgYXV0byBjYWxsYmFja0lkZW50aWZpZXIgPSBDYWxsYmFja0lkZW50aWZpZXI6OmdlbmVyYXRl
VGhyZWFkU2FmZSgpOwotICAgIG1fcmVtb3ZlRW50cnlDYWxsYmFja3MuYWRkKGNhbGxiYWNrSWRl
bnRpZmllciwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIG1fdm9pZENhbGxiYWNrcy5hZGQoY2Fs
bGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiAKICAgICBjYWxsT25NYWluVGhy
ZWFkKFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFJlZiB7IG1fc2NvcGUtPnRo
cmVhZCgpIH0sIG1haW5UaHJlYWRDb25uZWN0aW9uID0gbV9tYWluVGhyZWFkQ29ubmVjdGlvbiwg
aWRlbnRpZmllciwgbmFtZSA9IG5hbWUuaXNvbGF0ZWRDb3B5KCksIGRlbGV0ZVJlY3Vyc2l2ZWx5
XSgpIG11dGFibGUgewogICAgICAgICBhdXRvIG1haW5UaHJlYWRDYWxsYmFjayA9IFtjYWxsYmFj
a0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKV0oYXV0byBy
ZXN1bHQpIG11dGFibGUgewogICAgICAgICAgICAgd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9z
dFRhc2tGb3JNb2RlKFtjYWxsYmFja0lkZW50aWZpZXIsIHJlc3VsdCA9IGNyb3NzVGhyZWFkQ29w
eShyZXN1bHQpXSAoYXV0byYgc2NvcGUpIG11dGFibGUgewogICAgICAgICAgICAgICAgIGlmIChh
dXRvIGNvbm5lY3Rpb24gPSBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oc2NvcGUpLmZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbigpKQotICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9u
LT5kaWRSZW1vdmVFbnRyeShjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUocmVzdWx0KSk7Cisg
ICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPmNvbXBsZXRlVm9pZENhbGxiYWNrKGNhbGxi
YWNrSWRlbnRpZmllciwgV1RGTW92ZShyZXN1bHQpKTsKICAgICAgICAgICAgIH0sIFdvcmtlclJ1
bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwogICAgICAgICB9OwogCkBAIC0xNjcsMTIgKzE2Nyw2IEBA
IHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpyZW1vdmVFbnRyeShGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciBpCiAgICAgfSk7CiB9CiAKLXZvaWQgV29ya2VyRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpkaWRSZW1vdmVFbnRyeShDYWxsYmFja0lkZW50aWZpZXIg
Y2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25Pcjx2b2lkPiYmIHJlc3VsdCkKLXsKLSAgICBp
ZiAoYXV0byBjYWxsYmFjayA9IG1fcmVtb3ZlRW50cnlDYWxsYmFja3MudGFrZShjYWxsYmFja0lk
ZW50aWZpZXIpKQotICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKHJlc3VsdCkpOwotfQotCiB2b2lk
IFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6cmVzb2x2ZShGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBvdGhl
cklkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6UmVzb2x2ZUNhbGxiYWNr
JiYgY2FsbGJhY2spCiB7CiAgICAgaWYgKCFtX3Njb3BlKQpAQCAtMTk5LDQgKzE5MywxMjIgQEAg
dm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmRpZFJlc29sdmUoQ2FsbGJh
Y2tJZGVudGlmaWVyIGNhbGxiYWNrSWQKICAgICAgICAgY2FsbGJhY2soV1RGTW92ZShyZXN1bHQp
KTsKIH0KIAordm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmRpZENyZWF0
ZVN5bmNBY2Nlc3NIYW5kbGUoQ2FsbGJhY2tJZGVudGlmaWVyIGNhbGxiYWNrSWRlbnRpZmllciwg
RXhjZXB0aW9uT3I8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyPiYmIHJlc3Vs
dCkKK3sKKyAgICBpZiAoYXV0byBjYWxsYmFjayA9IG1fZ2V0QWNjZXNzSGFuZGxDYWxsYmFja3Mu
dGFrZShjYWxsYmFja0lkZW50aWZpZXIpKQorICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKHJlc3Vs
dCkpOworfQorCit2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y29tcGxl
dGVJbnRlZ2VyQ2FsbGJhY2soQ2FsbGJhY2tJZGVudGlmaWVyIGNhbGxiYWNrSWRlbnRpZmllciwg
RXhjZXB0aW9uT3I8dWludDY0X3Q+JiYgcmVzdWx0KQoreworICAgIGlmIChhdXRvIGNhbGxiYWNr
ID0gbV9pbnRlZ2VyQ2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJZGVudGlmaWVyKSkKKyAgICAgICAg
Y2FsbGJhY2soV1RGTW92ZShyZXN1bHQpKTsKK30KKwordm9pZCBXb3JrZXJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb246OmNvbXBsZXRlVm9pZENhbGxiYWNrKENhbGxiYWNrSWRlbnRpZmllciBj
YWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPHZvaWQ+JiYgcmVzdWx0KQoreworICAgIGlm
IChhdXRvIGNhbGxiYWNrID0gbV92b2lkQ2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJZGVudGlmaWVy
KSkKKyAgICAgICAgY2FsbGJhY2soV1RGTW92ZShyZXN1bHQpKTsKK30KKwordm9pZCBXb3JrZXJG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uOjpHZXRBY2Nlc3NIYW5kbGVDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIGlmICghbV9z
Y29wZSkKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVy
cm9yIH0pOworCisgICAgYXV0byBjYWxsYmFja0lkZW50aWZpZXIgPSBDYWxsYmFja0lkZW50aWZp
ZXI6OmdlbmVyYXRlVGhyZWFkU2FmZSgpOworICAgIG1fZ2V0QWNjZXNzSGFuZGxDYWxsYmFja3Mu
YWRkKGNhbGxiYWNrSWRlbnRpZmllciwgV1RGTW92ZShjYWxsYmFjaykpOworCisgICAgY2FsbE9u
TWFpblRocmVhZChbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQgPSBSZWYgeyBtX3Nj
b3BlLT50aHJlYWQoKSB9LCBtYWluVGhyZWFkQ29ubmVjdGlvbiA9IG1fbWFpblRocmVhZENvbm5l
Y3Rpb24sIGlkZW50aWZpZXJdKCkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8gbWFpblRocmVhZENh
bGxiYWNrID0gW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gV1RGTW92ZSh3b3Jr
ZXJUaHJlYWQpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgICAgICB3b3JrZXJUaHJl
YWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoW2NhbGxiYWNrSWRlbnRpZmllciwgcmVzdWx0
ID0gY3Jvc3NUaHJlYWRDb3B5KHJlc3VsdCldIChhdXRvJiBzY29wZSkgbXV0YWJsZSB7CisgICAg
ICAgICAgICAgICAgaWYgKGF1dG8gY29ubmVjdGlvbiA9IGRvd25jYXN0PFdvcmtlckdsb2JhbFNj
b3BlPihzY29wZSkuZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKCkpCisgICAgICAgICAgICAg
ICAgICAgIGNvbm5lY3Rpb24tPmRpZENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoY2FsbGJhY2tJZGVu
dGlmaWVyLCBXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAgICAgfSwgV29ya2VyUnVuTG9vcDo6
ZGVmYXVsdE1vZGUoKSk7CisgICAgICAgIH07CisKKyAgICAgICAgbWFpblRocmVhZENvbm5lY3Rp
b24tPmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoaWRlbnRpZmllciwgV1RGTW92ZShtYWluVGhyZWFk
Q2FsbGJhY2spKTsKKyAgICB9KTsKK30KKwordm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OmdldFNpemUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwg
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6SW50ZWdlckNhbGxiYWNrJiYgY2FsbGJh
Y2spCit7CisgICAgaWYgKCFtX3Njb3BlKQorICAgICAgICByZXR1cm4gY2FsbGJhY2soRXhjZXB0
aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CisKKyAgICBhdXRvIGNhbGxiYWNrSWRlbnRpZmll
ciA9IENhbGxiYWNrSWRlbnRpZmllcjo6Z2VuZXJhdGVUaHJlYWRTYWZlKCk7CisgICAgbV9pbnRl
Z2VyQ2FsbGJhY2tzLmFkZChjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUoY2FsbGJhY2spKTsK
KworICAgIGNhbGxPbk1haW5UaHJlYWQoW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFk
ID0gUmVmIHsgbV9zY29wZS0+dGhyZWFkKCkgfSwgbWFpblRocmVhZENvbm5lY3Rpb24gPSBtX21h
aW5UaHJlYWRDb25uZWN0aW9uLCBpZGVudGlmaWVyLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyXSgp
IG11dGFibGUgeworICAgICAgICBhdXRvIG1haW5UaHJlYWRDYWxsYmFjayA9IFtjYWxsYmFja0lk
ZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKV0oYXV0byByZXN1
bHQpIG11dGFibGUgeworICAgICAgICAgICAgd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9zdFRh
c2tGb3JNb2RlKFtjYWxsYmFja0lkZW50aWZpZXIsIHJlc3VsdCA9IGNyb3NzVGhyZWFkQ29weShy
ZXN1bHQpXSAoYXV0byYgc2NvcGUpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGlmIChhdXRv
IGNvbm5lY3Rpb24gPSBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oc2NvcGUpLmZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbigpKQorICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLT5j
b21wbGV0ZUludGVnZXJDYWxsYmFjayhjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUocmVzdWx0
KSk7CisgICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKKyAgICAg
ICAgfTsKKworICAgICAgICBtYWluVGhyZWFkQ29ubmVjdGlvbi0+Z2V0U2l6ZShpZGVudGlmaWVy
LCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXVEZNb3ZlKG1haW5UaHJlYWRDYWxsYmFjaykpOwor
ICAgIH0pOworfQorCit2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6dHJ1
bmNhdGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHVpbnQ2NF90
IHNpemUsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Vm9pZENhbGxiYWNrJiYgY2FsbGJh
Y2spCit7CisgICAgaWYgKCFtX3Njb3BlKQorICAgICAgICByZXR1cm4gY2FsbGJhY2soRXhjZXB0
aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CisKKyAgICBhdXRvIGNhbGxiYWNrSWRlbnRpZmll
ciA9IENhbGxiYWNrSWRlbnRpZmllcjo6Z2VuZXJhdGVUaHJlYWRTYWZlKCk7CisgICAgbV92b2lk
Q2FsbGJhY2tzLmFkZChjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUoY2FsbGJhY2spKTsKKwor
ICAgIGNhbGxPbk1haW5UaHJlYWQoW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0g
UmVmIHsgbV9zY29wZS0+dGhyZWFkKCkgfSwgbWFpblRocmVhZENvbm5lY3Rpb24gPSBtX21haW5U
aHJlYWRDb25uZWN0aW9uLCBpZGVudGlmaWVyLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBzaXpl
XSgpIG11dGFibGUgeworICAgICAgICBhdXRvIG1haW5UaHJlYWRDYWxsYmFjayA9IFtjYWxsYmFj
a0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKV0oYXV0byBy
ZXN1bHQpIG11dGFibGUgeworICAgICAgICAgICAgd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9z
dFRhc2tGb3JNb2RlKFtjYWxsYmFja0lkZW50aWZpZXIsIHJlc3VsdCA9IGNyb3NzVGhyZWFkQ29w
eShyZXN1bHQpXSAoYXV0byYgc2NvcGUpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGlmIChh
dXRvIGNvbm5lY3Rpb24gPSBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oc2NvcGUpLmZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbigpKQorICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9u
LT5jb21wbGV0ZVZvaWRDYWxsYmFjayhjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUocmVzdWx0
KSk7CisgICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKKyAgICAg
ICAgfTsKKworICAgICAgICBtYWluVGhyZWFkQ29ubmVjdGlvbi0+dHJ1bmNhdGUoaWRlbnRpZmll
ciwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgc2l6ZSwgV1RGTW92ZShtYWluVGhyZWFkQ2FsbGJh
Y2spKTsKKyAgICB9KTsKK30KKwordm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b246OmZsdXNoKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAg
IGlmICghbV9zY29wZSkKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IEludmFs
aWRTdGF0ZUVycm9yIH0pOworCisgICAgYXV0byBjYWxsYmFja0lkZW50aWZpZXIgPSBDYWxsYmFj
a0lkZW50aWZpZXI6OmdlbmVyYXRlVGhyZWFkU2FmZSgpOworICAgIG1fdm9pZENhbGxiYWNrcy5h
ZGQoY2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisKKyAgICBjYWxsT25N
YWluVGhyZWFkKFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFJlZiB7IG1fc2Nv
cGUtPnRocmVhZCgpIH0sIG1haW5UaHJlYWRDb25uZWN0aW9uID0gbV9tYWluVGhyZWFkQ29ubmVj
dGlvbiwgaWRlbnRpZmllciwgYWNjZXNzSGFuZGxlSWRlbnRpZmllcl0oKSBtdXRhYmxlIHsKKyAg
ICAgICAgYXV0byBtYWluVGhyZWFkQ2FsbGJhY2sgPSBbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3Jr
ZXJUaHJlYWQgPSBXVEZNb3ZlKHdvcmtlclRocmVhZCldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsK
KyAgICAgICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbY2Fs
bGJhY2tJZGVudGlmaWVyLCByZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0KV0gKGF1dG8m
IHNjb3BlKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBjb25uZWN0aW9uID0g
ZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5maWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24oKSkKKyAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+Y29tcGxldGVWb2lkQ2Fs
bGJhY2soY2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAgICAg
fSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CisgICAgICAgIH07CisKKyAgICAgICAg
bWFpblRocmVhZENvbm5lY3Rpb24tPmZsdXNoKGlkZW50aWZpZXIsIGFjY2Vzc0hhbmRsZUlkZW50
aWZpZXIsIFdURk1vdmUobWFpblRocmVhZENhbGxiYWNrKSk7CisgICAgfSk7Cit9CisKK3ZvaWQg
V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjbG9zZShGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciBpZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpW
b2lkQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBpZiAoIW1fc2NvcGUpCisgICAgICAgIHJl
dHVybiBjYWxsYmFjayhFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKworICAgIGF1
dG8gY2FsbGJhY2tJZGVudGlmaWVyID0gQ2FsbGJhY2tJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVh
ZFNhZmUoKTsKKyAgICBtX3ZvaWRDYWxsYmFja3MuYWRkKGNhbGxiYWNrSWRlbnRpZmllciwgV1RG
TW92ZShjYWxsYmFjaykpOworCisgICAgY2FsbE9uTWFpblRocmVhZChbY2FsbGJhY2tJZGVudGlm
aWVyLCB3b3JrZXJUaHJlYWQgPSBSZWYgeyBtX3Njb3BlLT50aHJlYWQoKSB9LCBtYWluVGhyZWFk
Q29ubmVjdGlvbiA9IG1fbWFpblRocmVhZENvbm5lY3Rpb24sIGlkZW50aWZpZXIsIGFjY2Vzc0hh
bmRsZUlkZW50aWZpZXJdKCkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8gbWFpblRocmVhZENhbGxi
YWNrID0gW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gV1RGTW92ZSh3b3JrZXJU
aHJlYWQpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgICAgICB3b3JrZXJUaHJlYWQt
PnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoW2NhbGxiYWNrSWRlbnRpZmllciwgcmVzdWx0ID0g
Y3Jvc3NUaHJlYWRDb3B5KHJlc3VsdCldIChhdXRvJiBzY29wZSkgbXV0YWJsZSB7CisgICAgICAg
ICAgICAgICAgaWYgKGF1dG8gY29ubmVjdGlvbiA9IGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3Bl
PihzY29wZSkuZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKCkpCisgICAgICAgICAgICAgICAg
ICAgIGNvbm5lY3Rpb24tPmNvbXBsZXRlVm9pZENhbGxiYWNrKGNhbGxiYWNrSWRlbnRpZmllciwg
V1RGTW92ZShyZXN1bHQpKTsKKyAgICAgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRN
b2RlKCkpOworICAgICAgICB9OworCisgICAgICAgIG1haW5UaHJlYWRDb25uZWN0aW9uLT5jbG9z
ZShpZGVudGlmaWVyLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXVEZNb3ZlKG1haW5UaHJlYWRD
YWxsYmFjaykpOworICAgIH0pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKaW5kZXggZWM2OWQx
NzVhMmY3NTlmMDZiM2YxYzU0NzQ0ZDcxMGM5ZTYxYzNhYy4uOTBjYmNiZjY3M2E1ODZmMjc0NDJm
OTY0MDM0N2E5MjUyNjUwY2ZjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb24uaApAQCAtNDYsOCArNDYsMTAgQEAgcHVibGljOgogICAgIHVzaW5n
IENhbGxiYWNrSWRlbnRpZmllciA9IFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbkNh
bGxiYWNrSWRlbnRpZmllcjsKICAgICB2b2lkIGRpZElzU2FtZUVudHJ5KENhbGxiYWNrSWRlbnRp
ZmllciwgRXhjZXB0aW9uT3I8Ym9vbD4mJik7CiAgICAgdm9pZCBkaWRHZXRIYW5kbGUoQ2FsbGJh
Y2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcj4mJik7
Ci0gICAgdm9pZCBkaWRSZW1vdmVFbnRyeShDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9y
PHZvaWQ+JiYpOwogICAgIHZvaWQgZGlkUmVzb2x2ZShDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2Vw
dGlvbk9yPFZlY3RvcjxTdHJpbmc+PiYmKTsKKyAgICB2b2lkIGRpZENyZWF0ZVN5bmNBY2Nlc3NI
YW5kbGUoQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXI+JiYgcmVzdWx0KTsKKyAgICB2b2lkIGNvbXBsZXRlVm9pZENhbGxi
YWNrKENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8dm9pZD4mJiByZXN1bHQpOworICAg
IHZvaWQgY29tcGxldGVJbnRlZ2VyQ2FsbGJhY2soQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRp
b25Pcjx1aW50NjRfdD4mJiByZXN1bHQpOwogCiBwcml2YXRlOgogICAgIFdvcmtlckZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbihXb3JrZXJHbG9iYWxTY29wZSYsIFJlZjxGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24+JiYpOwpAQCAtNTYsMTUgKzU4LDIzIEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBpc1NhbWVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6U2FtZUVudHJ5Q2FsbGJh
Y2smJikgZmluYWw7CiAgICAgdm9pZCBnZXRGaWxlSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIEZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0SGFuZGxlQ2FsbGJhY2smJikgZmluYWw7CiAgICAg
dm9pZCBnZXREaXJlY3RvcnlIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOjpHZXRIYW5kbGVDYWxsYmFjayYmKSBmaW5hbDsKLSAgICB2b2lkIHJlbW92ZUVu
dHJ5KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wg
ZGVsZXRlUmVjdXJzaXZlbHksIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6UmVtb3ZlRW50
cnlDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIHJlbW92ZUVudHJ5KEZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHks
IEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Vm9pZENhbGxiYWNrJiYpIGZpbmFsOwogICAg
IHZvaWQgcmVzb2x2ZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6UmVzb2x2ZUNhbGxiYWNr
JiYpIGZpbmFsOwogCisgICAgdm9pZCBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEFjY2Vzc0hh
bmRsZUNhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgZ2V0U2l6ZShGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb246OkludGVnZXJDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lk
IHRydW5jYXRlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIsIHVpbnQ2NF90IHNpemUsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbjo6Vm9pZENhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgZmx1c2goRmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9p
ZCBjbG9zZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFj
ayYmKSBmaW5hbDsKKwogICAgIFdlYWtQdHI8V29ya2VyR2xvYmFsU2NvcGU+IG1fc2NvcGU7CiAg
ICAgUmVmUHRyPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4gbV9tYWluVGhyZWFkQ29ubmVj
dGlvbjsKICAgICBIYXNoTWFwPENhbGxiYWNrSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOjpTYW1lRW50cnlDYWxsYmFjaz4gbV9zYW1lRW50cnlDYWxsYmFja3M7CiAgICAg
SGFzaE1hcDxDYWxsYmFja0lkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6
R2V0SGFuZGxlQ2FsbGJhY2s+IG1fZ2V0SGFuZGxlQ2FsbGJhY2tzOwotICAgIEhhc2hNYXA8Q2Fs
bGJhY2tJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlJlbW92ZUVudHJ5
Q2FsbGJhY2s+IG1fcmVtb3ZlRW50cnlDYWxsYmFja3M7CiAgICAgSGFzaE1hcDxDYWxsYmFja0lk
ZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6UmVzb2x2ZUNhbGxiYWNrPiBt
X3Jlc29sdmVDYWxsYmFja3M7CisgICAgSGFzaE1hcDxDYWxsYmFja0lkZW50aWZpZXIsIEZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0QWNjZXNzSGFuZGxlQ2FsbGJhY2s+IG1fZ2V0QWNj
ZXNzSGFuZGxDYWxsYmFja3M7CisgICAgSGFzaE1hcDxDYWxsYmFja0lkZW50aWZpZXIsIEZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Vm9pZENhbGxiYWNrPiBtX3ZvaWRDYWxsYmFja3M7Cisg
ICAgSGFzaE1hcDxDYWxsYmFja0lkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bjo6SW50ZWdlckNhbGxiYWNrPiBtX2ludGVnZXJDYWxsYmFja3M7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDFlZmY2YWViMzliYTAyYTczNWYyMTRjMzRm
ZDcwYzEwMzNlOTNmMTAuLjkzOTc4MWQwMzE0OWE3OWMwZWU0N2RmYjJlMDliODBlOTJlZmUwODAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0CkBAIC02MSw2ICs2MSw3IEBAIE1vZHVsZXMvZmV0Y2gvV2luZG93T3JX
b3JrZXJHbG9iYWxTY29wZUZldGNoLmNwcAogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVT
eXN0ZW1EaXJlY3RvcnlIYW5kbGUuY3BwCiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbUZpbGVIYW5kbGUuY3BwCiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhh
bmRsZS5jcHAKK01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZS5jcHAKIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24uY3BwCiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb05vdGlmaWVyLmNwcAogTW9k
dWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAKQEAgLTMwNDYsNiArMzA0Nyw3IEBAIEpT
RmlsZVN5c3RlbUVudHJ5Q2FsbGJhY2suY3BwCiBKU0ZpbGVTeXN0ZW1GaWxlRW50cnkuY3BwCiBK
U0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcAogSlNGaWxlU3lzdGVtSGFuZGxlLmNwcAorSlNGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAKIEpTRmlsbE1vZGUuY3BwCiBKU0ZvY3VzRXZlbnQu
Y3BwCiBKU0ZvY3VzT3B0aW9ucy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2MTRjM2Q3MGMyY2IxM2RmYzFjMjBjYjI2MDg1
MjY3MGY0ZWQ3ZTVhLi40OTNlOWE0ZGU4NDk3NTM0OTc2MzYxZDJmYjA5ODY0MmJkODRlNzRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0yODEwLDYgKzI4MTAsNyBAQAogCQk5MzBBQUM5QTI1MEVCODQ5MDAxM0RBOUYgLyogQ1NT
Q29uZGl0aW9uUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTMwQUFDOTgyNTBFQjgxNzAwMTNEQTlGIC8qIENTU0NvbmRpdGlvblJ1bGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzBBQUM5RjI1
MEVENDA5MDAxM0RBOUYgLyogSlNDU1NDb25kaXRpb25SdWxlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzBBQUM5RDI1MEVENDA5MDAxM0RBOUYgLyog
SlNDU1NDb25kaXRpb25SdWxlLmggKi87IH07CiAJCTkzMEFBQ0EyMjUwRUQ0MTEwMDEzREE5RiAv
KiBKU0NTU0dyb3VwaW5nUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTMwQUFDQTAyNTBFRDQxMTAwMTNEQTlGIC8qIEpTQ1NTR3JvdXBpbmdSdWxl
LmggKi87IH07CisJCTkzMEU0NDg2MjcwQzM3MjIwMERFN0FCNyAvKiBGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzMEU0NDg0MjcwQzM3MjEwMERFN0FCNyAvKiBGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk5MzE1M0JEQTE0MTgxRjdBMDBGQ0Y1QkUgLyogbWlzc2luZ0ltYWdl
QDJ4LnBuZyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTMxNTNCRDkxNDE4MUY3QTAwRkNGNUJFIC8qIG1pc3NpbmdJbWFnZUAyeC5wbmcgKi87IH07CiAJ
CTkzMTUzQkRDMTQxOTU5QkMwMEZDRjVCRSAvKiB0ZXh0QXJlYVJlc2l6ZUNvcm5lci5wbmcgaW4g
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMTUzQkRCMTQx
OTU5QkIwMEZDRjVCRSAvKiB0ZXh0QXJlYVJlc2l6ZUNvcm5lci5wbmcgKi87IH07CiAJCTkzMTUz
QkUyMTQxOTVBNTcwMEZDRjVCRSAvKiBtaXNzaW5nSW1hZ2UucG5nIGluIFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzE1M0JFMTE0MTk1QTU3MDBGQ0Y1QkUg
LyogbWlzc2luZ0ltYWdlLnBuZyAqLzsgfTsKQEAgLTI5NDcsNiArMjk0OCw3IEBACiAJCTkzQzA5
QTUzMEIwNjREQjMwMDVBQkQ0RCAvKiBFdmVudEhhbmRsZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQzA5QTUyMEIwNjREQjMwMDVBQkQ0RCAvKiBF
dmVudEhhbmRsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk5M0MwOUM4NjBCMDY1N0FBMDA1QUJENEQgLyogU2Nyb2xsVHlwZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQzA5Qzg1MEIwNjU3QUEw
MDVBQkQ0RCAvKiBTY3JvbGxUeXBlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTkzQzM4QkZGMTY0NDczQzcwMDA5MUVCMiAvKiBTY3JvbGxpbmdT
dGF0ZUZpeGVkTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTNDMzhCRkQxNjQ0NzNDNzAwMDkxRUIyIC8qIFNjcm9sbGluZ1N0YXRlRml4ZWROb2Rl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTND
M0ZCRDMyNzBDRDNENTAwRjVFMTJGIC8qIEZpbGVTeXN0ZW1GaWxlSGFuZGxlQWNjZXNzSGFuZGxl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0MzRkJE
MDI3MENEM0Q0MDBGNUUxMkYgLyogRmlsZVN5c3RlbUZpbGVIYW5kbGVBY2Nlc3NIYW5kbGUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0M0NDIw
MDBGODEzQUUxMDBDMUE2MzQgLyogQ29sbGVjdGlvblR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQzQ0MUZGMEY4MTNBRTEwMEMxQTYzNCAvKiBD
b2xsZWN0aW9uVHlwZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTkzQzRBNDE1MTYyOURGNUEwMEMzRUI2RSAvKiBTY3JvbGxpbmdUcmVlRnJhbWVT
Y3JvbGxpbmdOb2RlTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5M0M0QTQxMzE2MjlERjVBMDBDM0VCNkUgLyogU2Nyb2xsaW5nVHJlZUZyYW1lU2Ny
b2xsaW5nTm9kZU1hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTkzQzRGNkVCMTEwOEY5QTUwMDk5RDBEQiAvKiBBY2Nlc3NpYmlsaXR5U2Nyb2xs
YmFyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0M0
RjZFOTExMDhGOUE1MDA5OUQwREIgLyogQWNjZXNzaWJpbGl0eVNjcm9sbGJhci5oICovOyB9OwpA
QCAtMjk2Myw2ICsyOTY1LDcgQEAKIAkJOTNENkI3QTgyNTUxRDQxRjAwNThERDNBIC8qIER1bW15
U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTNENkI3QTYyNTUxRDNFRDAwNThERDNBIC8qIER1bW15U3BlZWNo
UmVjb2duaXRpb25Qcm92aWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTkzRDlENTNDMERBMjdFMTgwMDc3MjE2QyAvKiBSYW5nZUJvdW5kYXJ5
UG9pbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
RDlENTNCMERBMjdFMTgwMDc3MjE2QyAvKiBSYW5nZUJvdW5kYXJ5UG9pbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0UyNDFGRjBCMkI0RTQw
MDBDNzMyQTEgLyogSFRNTEZyYW1lT3duZXJFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0UyNDFGRTBCMkI0RTQwMDBDNzMyQTEgLyogSFRN
TEZyYW1lT3duZXJFbGVtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJOTNFMjY5QTIyNzBBNUQ1RDAwMkM0RkYwIC8qIEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5M0UyNjk5RjI3MEE1RDVDMDAyQzRGRjAgLyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5
M0UyQTMwNzEyM0U5REMwMDA5RkUxMkEgLyogSFRNTFBhcnNlcklkaW9tcy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNFMkEzMDUxMjNFOURDMDAwOUZF
MTJBIC8qIEhUTUxQYXJzZXJJZGlvbXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk5M0U1QjI2NTI0NTVFOTZGMDA1QzUyRDAgLyogQXR0cmlidXRl
ZFN0cmluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTNFNUIyNjMyNDU1RTk2RjAwNUM1MkQwIC8qIEF0dHJpYnV0ZWRTdHJpbmcuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0YxOThFNTA4MjQ1RTU5
MDAxRTlBQkMgLyogSFRNTERvY3VtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTIzRDIzQzAyREU0Mzk2MDE4NjM1Q0EgLyogSFRNTERvY3VtZW50
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEx
Njk1LDYgKzExNjk4LDcgQEAKIAkJOTMwQUFDQTAyNTBFRDQxMTAwMTNEQTlGIC8qIEpTQ1NTR3Jv
dXBpbmdSdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ1NTR3JvdXBp
bmdSdWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMEFBQ0ExMjUwRUQ0MTEw
MDEzREE5RiAvKiBKU0NTU0dyb3VwaW5nUnVsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU0NTU0dyb3VwaW5nUnVsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTkzMEM5MERDMTlDRjk2NTMwMEQ2QzIxQSAvKiBMZWdhY3lJbmxpbmVJdGVyYXRv
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMZWdhY3lJbmxpbmVJ
dGVyYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzMEU0NDg0MjcwQzM3
MjEwMERFN0FCNyAvKiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMTUzQkQ5MTQxODFG
N0EwMEZDRjVCRSAvKiBtaXNzaW5nSW1hZ2VAMngucG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRoID0gIm1pc3NpbmdJbWFn
ZUAyeC5wbmciOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzE1M0JEQjE0MTk1OUJC
MDBGQ0Y1QkUgLyogdGV4dEFyZWFSZXNpemVDb3JuZXIucG5nICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRoID0gdGV4dEFyZWFS
ZXNpemVDb3JuZXIucG5nOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzE1M0JFMTE0
MTk1QTU3MDBGQ0Y1QkUgLyogbWlzc2luZ0ltYWdlLnBuZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGltYWdlLnBuZzsgcGF0aCA9IG1pc3NpbmdJbWFn
ZS5wbmc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTk2Niw2ICsxMTk3MCw4IEBA
CiAJCTkzQzA5Qzg1MEIwNjU3QUEwMDVBQkQ0RCAvKiBTY3JvbGxUeXBlcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxUeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5M0MzOEJGQzE2NDQ3M0M3MDAwOTFFQjIgLyogU2Nyb2xsaW5nU3RhdGVGaXhl
ZE5vZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2Nyb2xsaW5n
U3RhdGVGaXhlZE5vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0MzOEJG
RDE2NDQ3M0M3MDAwOTFFQjIgLyogU2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNDM0ZCRDAyNzBDRDNENDAwRjVFMTJGIC8qIEZpbGVT
eXN0ZW1GaWxlSGFuZGxlQWNjZXNzSGFuZGxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEZpbGVTeXN0ZW1GaWxlSGFuZGxlQWNjZXNzSGFuZGxlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTkzQzNGQkQyMjcwQ0QzRDQwMEY1RTEyRiAvKiBGaWxlU3lzdGVtRmls
ZUhhbmRsZStBY2Nlc3NIYW5kbGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9ICJGaWxlU3lz
dGVtRmlsZUhhbmRsZStBY2Nlc3NIYW5kbGUuaWRsIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTNDNDQxRkYwRjgxM0FFMTAwQzFBNjM0IC8qIENvbGxlY3Rpb25UeXBlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbGxlY3Rpb25UeXBlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTkzQzRBNDEzMTYyOURGNUEwMEMzRUI2RSAvKiBTY3JvbGxpbmdU
cmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTNDNEE0MTQxNjI5REY1QTAwQzNFQjZFIC8qIFNjcm9sbGluZ1RyZWVG
cmFtZVNjcm9sbGluZ05vZGVNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTE5OTQsNiArMTIwMDAsOSBAQAogCQk5M0UyMjdERjBBRjU4
OUFEMDBENDgzMjQgLyogU3VicmVzb3VyY2VMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gU3VicmVzb3VyY2VMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5M0UyNDFGRTBCMkI0RTQwMDBDNzMyQTEgLyogSFRNTEZyYW1lT3duZXJF
bGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxGcmFtZU93bmVy
RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0UyNDI1RTBCMkI1MDk1
MDBDNzMyQTEgLyogSFRNTEZyYW1lT3duZXJFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxGcmFtZU93bmVyRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTkzRTI2OTlEMjcwQTVENUIwMDJDNEZGMCAvKiBGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0UyNjk5
RjI3MEE1RDVDMDAyQzRGRjAgLyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNFMjY5QTAyNzBBNUQ1QzAwMkM0RkYwIC8q
IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTNFMkEzMDQxMjNFOURDMDAwOUZFMTJBIC8qIEhUTUxQYXJzZXJJ
ZGlvbXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTFBhcnNl
cklkaW9tcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRTJBMzA1MTIzRTlE
QzAwMDlGRTEyQSAvKiBIVE1MUGFyc2VySWRpb21zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEhUTUxQYXJzZXJJZGlvbXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTNFNUIyNTQyNDUzNkIxRTAwNUM1MkQwIC8qIFVSTERlY29tcG9zaXRpb24uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVVJMRGVjb21wb3NpdGlvbi5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMzQzMCwxNCArMjM0MzksMjAgQEAKIAkJCQk5
MzJDOUJENTI2REQ2MjVCMDA1M0IzREIgLyogRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5jcHAg
Ki8sCiAJCQkJOTMyQzlCRDQyNkRENjI1QTAwNTNCM0RCIC8qIEZpbGVTeXN0ZW1EaXJlY3RvcnlI
YW5kbGUuaCAqLywKIAkJCQk5MzJDOUJEMjI2REQ2MjU3MDA1M0IzREIgLyogRmlsZVN5c3RlbURp
cmVjdG9yeUhhbmRsZS5pZGwgKi8sCisJCQkJOTNDM0ZCRDIyNzBDRDNENDAwRjVFMTJGIC8qIEZp
bGVTeXN0ZW1GaWxlSGFuZGxlK0FjY2Vzc0hhbmRsZS5pZGwgKi8sCiAJCQkJOTMyQzlCRDMyNkRE
NjI1OTAwNTNCM0RCIC8qIEZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcCAqLywKIAkJCQk5MzJDOUJE
NjI2REQ2MjVDMDA1M0IzREIgLyogRmlsZVN5c3RlbUZpbGVIYW5kbGUuaCAqLywKIAkJCQk5MzJD
OUJDRTI2REQ2MjUyMDA1M0IzREIgLyogRmlsZVN5c3RlbUZpbGVIYW5kbGUuaWRsICovLAorCQkJ
CTkzQzNGQkQwMjcwQ0QzRDQwMEY1RTEyRiAvKiBGaWxlU3lzdGVtRmlsZUhhbmRsZUFjY2Vzc0hh
bmRsZS5oICovLAogCQkJCTkzMkM5QkQwMjZERDYyNTUwMDUzQjNEQiAvKiBGaWxlU3lzdGVtSGFu
ZGxlLmNwcCAqLywKIAkJCQk5MzJDOUJEQTI2REQ2MjYxMDA1M0IzREIgLyogRmlsZVN5c3RlbUhh
bmRsZS5oICovLAogCQkJCTkzMkM5QkQ5MjZERDYyNjAwMDUzQjNEQiAvKiBGaWxlU3lzdGVtSGFu
ZGxlLmlkbCAqLywKIAkJCQk5MzU0MjQyNzI3MDNCQzg4MDA1Q0E3MkMgLyogRmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIuaCAqLywKIAkJCQk5MzU0MjQyOTI3MDNCQ0FEMDA1Q0E3MkMgLyogRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggKi8sCisJCQkJOTNFMjY5QTAyNzBBNUQ1QzAwMkM0
RkYwIC8qIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcCAqLywKKwkJCQk5M0UyNjk5RjI3
MEE1RDVDMDAyQzRGRjAgLyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaCAqLywKKwkJCQk5
M0UyNjk5RDI3MEE1RDVCMDAyQzRGRjAgLyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRs
ICovLAorCQkJCTkzMEU0NDg0MjcwQzM3MjEwMERFN0FCNyAvKiBGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIuaCAqLywKIAkJCQk5MzQ0M0U3QjI2RThBNkJDMDA1ODUzOEYgLyog
U3RvcmFnZU1hbmFnZXIrRmlsZVN5c3RlbUFjY2Vzcy5pZGwgKi8sCiAJCQkJOTM0NDNFN0QyNkU4
QTZCQzAwNTg1MzhGIC8qIFN0b3JhZ2VNYW5hZ2VyRmlsZVN5c3RlbUFjY2Vzcy5oICovLAogCQkJ
CTkzMjMzQzg1MjcwNTRDNzgwMEJCRjQxRSAvKiBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24uY3BwICovLApAQCAtMzI1NTcsOSArMzI1NzIsMTIgQEAKIAkJCQk4MzhGODZEQjFGNTA5
RTdCMDBFOENGQzUgLyogRmlsZVN5c3RlbUVudHJ5Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAog
CQkJCTgzRkIzMzc1MUY1MDhBNUIwMDk4NkU1NCAvKiBGaWxlU3lzdGVtRmlsZUVudHJ5LmggaW4g
SGVhZGVycyAqLywKIAkJCQk5MzQ0M0U4NzI2RTk5NUMwMDA1ODUzOEYgLyogRmlsZVN5c3RlbUZp
bGVIYW5kbGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQzNGQkQzMjcwQ0QzRDUwMEY1RTEyRiAv
KiBGaWxlU3lzdGVtRmlsZUhhbmRsZUFjY2Vzc0hhbmRsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTM0NDNFODgyNkU5OTVDNDAwNTg1MzhGIC8qIEZpbGVTeXN0ZW1IYW5kbGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTkzNTQyNDJGMjcwM0NBNTEwMDVDQTcyQyAvKiBGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM1NDI0MzAyNzAzQ0I4NjAwNUNBNzJDIC8q
IEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNFMjY5
QTIyNzBBNUQ1RDAwMkM0RkYwIC8qIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk5MzBFNDQ4NjI3MEMzNzIyMDBERTdBQjcgLyogRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVFQjY5RjBFODFE
QUVCMDBCMjU5NjUgLyogRmlsbExheWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk3MTJCRTQ4MzFG
RTg2NUREMDAyMDMxQ0MgLyogRmlsbE1vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTg0NUU3MkY4
MEZEMjYxRUUwMEE4N0Q3OSAvKiBGaWx0ZXIuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCmluZGV4IGU4MzVkZjdm
ZjBiMjIwZGViYTA1OGZkM2E4NGRmNWQyYzI1MTM5NWMuLjJiYjlhOTM5YmZjYjZhOTc1ODg2MmY3
ODg1NjZlNzJjMDRhMGU3MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1dlYkNvcmVCdWlsdGluTmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9X
ZWJDb3JlQnVpbHRpbk5hbWVzLmgKQEAgLTEyNCw2ICsxMjQsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgbWFjcm8oRmlsZVN5c3RlbUZpbGVFbnRyeSkgXAogICAgIG1hY3JvKEZpbGVTeXN0
ZW1GaWxlSGFuZGxlKSBcCiAgICAgbWFjcm8oRmlsZVN5c3RlbUhhbmRsZSkgXAorICAgIG1hY3Jv
KEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKSBcCiAgICAgbWFjcm8oR2FtZXBhZCkgXAogICAg
IG1hY3JvKEdhbWVwYWRCdXR0b24pIFwKICAgICBtYWNybyhHYW1lcGFkRXZlbnQpIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3Rv
cmFnZUVycm9yLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5
c3RlbVN0b3JhZ2VFcnJvci5oCmluZGV4IDQ0M2M5NTE0Y2Q5MzI5MTNkZGUzNGMyN2Y2YjViNTcy
MDFhMGE0MWYuLjgyOTAwMjkyMzkwMTkyM2NjN2RiYTZjMjc3ZjNjMzM0ZTU1MzVlOGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3Rv
cmFnZUVycm9yLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0Zp
bGVTeXN0ZW1TdG9yYWdlRXJyb3IuaApAQCAtMjUsNyArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UK
IAotI2luY2x1ZGUgPFdlYkNvcmUvRXhjZXB0aW9uQ29kZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
RXhjZXB0aW9uT3IuaD4KICNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKQEAgLTM0LDI2ICszNCwzNyBAQCBlbnVtIGNsYXNzIEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3IgOiB1aW50OF90IHsKICAgICBGaWxlTm90Rm91bmQsCiAgICAgSW52YWxpZE5hbWUsCiAg
ICAgSW52YWxpZE1vZGlmaWNhdGlvbiwKKyAgICBJbnZhbGlkU3RhdGUsCiAgICAgVHlwZU1pc21h
dGNoLAogICAgIFVua25vd24KIH07CiAKLWlubGluZSBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGNv
bnZlcnRUb0V4Y2VwdGlvbkNvZGUoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvciBlcnJvcikKK2lubGlu
ZSBXZWJDb3JlOjpFeGNlcHRpb25Pcjx2b2lkPiBjb252ZXJ0VG9FeGNlcHRpb25PcihzdGQ6Om9w
dGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGVycm9yKQoreworICAgIGlmICghZXJyb3Ip
CisgICAgICAgIHJldHVybiB7IH07CisKKyAgICByZXR1cm4gY29udmVydFRvRXhjZXB0aW9uT3Io
KmVycm9yKTsKK30KKworaW5saW5lIFdlYkNvcmU6OkV4Y2VwdGlvbiBjb252ZXJ0VG9FeGNlcHRp
b24oRmlsZVN5c3RlbVN0b3JhZ2VFcnJvciBlcnJvcikKIHsKICAgICBzd2l0Y2ggKGVycm9yKSB7
CiAgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpGaWxlTm90Rm91bmQ6Ci0gICAgICAg
IHJldHVybiBXZWJDb3JlOjpFeGNlcHRpb25Db2RlOjpOb3RGb3VuZEVycm9yOworICAgICAgICBy
ZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6Tm90Rm91bmRFcnJvciB9OwogICAg
IGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxpZE1vZGlmaWNhdGlvbjoKLSAgICAg
ICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGU6OkludmFsaWRNb2RpZmljYXRpb25FcnJv
cjsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OkludmFsaWRN
b2RpZmljYXRpb25FcnJvciB9OwogICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VHlw
ZU1pc21hdGNoOgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uQ29kZTo6VHlwZUVy
cm9yOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VHlwZUVy
cm9yIH07CiAgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpJbnZhbGlkTmFtZToKLSAg
ICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGU6OlVua25vd25FcnJvcjsKKyAgICAg
ICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIk5h
bWUgaXMgaW52YWxpZCIgfTsKKyAgICBjYXNlIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFs
aWRTdGF0ZToKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6Oklu
dmFsaWRTdGF0ZUVycm9yIH07CiAgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtu
b3duOgogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0
aW9uQ29kZTo6VW5rbm93bkVycm9yOworICAgIHJldHVybiBXZWJDb3JlOjpFeGNlcHRpb24geyBX
ZWJDb3JlOjpVbmtub3duRXJyb3IgfTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkBAIC02
Niw2ICs3Nyw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViS2l0OjpGaWxlU3lz
dGVtU3RvcmFnZUVycm9yPiB7CiAgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJv
cjo6RmlsZU5vdEZvdW5kLAogICAgICAgICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6
OkludmFsaWROYW1lLAogICAgICAgICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6Oklu
dmFsaWRNb2RpZmljYXRpb24sCisgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJv
cjo6SW52YWxpZFN0YXRlLAogICAgICAgICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6
OlR5cGVNaXNtYXRjaCwKICAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpV
bmtub3duCiAgICAgPjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3BwCmluZGV4IDIyYmMz
ZWY0ZWQyNzhhMTllMjQwNmM3OTQwY2ZiNmM4MzhkOTJkZWMuLmM4YTAxNDEzY2IzMzE5NjUzYThl
YjdlNzJmMWVlYzM0ODNjNmE2OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcApA
QCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oIgog
I2luY2x1ZGUgIkZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oIgorI2luY2x1ZGUgPHd0Zi9TY29w
ZS5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtMTM5LDQgKzE0MCw3OSBAQCBFeHBlY3Rl
ZDxWZWN0b3I8U3RyaW5nPiwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3Jh
Z2VIYW5kbGU6OnJlc29sdgogICAgIHJldHVybiByZXN0UGF0aC5zcGxpdChwYXRoU2VwYXJhdG9y
KTsKIH0KIAorRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6
Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpCit7CisgICAgaWYgKCFtX21hbmFnZXIpCisgICAgICAg
IHJldHVybiBtYWtlVW5leHBlY3RlZChGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duKTsK
KworICAgIGJvb2wgYWNxdWlyZWQgPSBtX21hbmFnZXItPmFjcXVpcmVMb2NrRm9yRmlsZShtX3Bh
dGgsIG1faWRlbnRpZmllcik7CisgICAgaWYgKCFhY3F1aXJlZCkKKyAgICAgICAgcmV0dXJuIG1h
a2VVbmV4cGVjdGVkKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWRTdGF0ZSk7CisKKyAg
ICBBU1NFUlQoIW1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSk7CisgICAgbV9hY3RpdmVTeW5jQWNj
ZXNzSGFuZGxlID0gV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVy
OjpnZW5lcmF0ZVRocmVhZFNhZmUoKTsKKyAgICByZXR1cm4gKm1fYWN0aXZlU3luY0FjY2Vzc0hh
bmRsZTsKK30KKworRXhwZWN0ZWQ8dWludDY0X3QsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpnZXRTaXplKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKQoreworICAgIGlmICgh
bV9tYW5hZ2VyKQorICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvcjo6VW5rbm93bik7CisKKyAgICBpZiAoIW1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSB8
fCAqbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlICE9IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpCisg
ICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtu
b3duKTsKKworICAgIGF1dG8gc2l6ZSA9IEZpbGVTeXN0ZW06OmZpbGVTaXplKG1fcGF0aCk7Cisg
ICAgaWYgKCFzaXplKQorICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcjo6VW5rbm93bik7CisKKyAgICByZXR1cm4gc2l6ZS52YWx1ZSgpOworfQorCitz
dGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlOjp0cnVuY2F0ZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSkKK3sKKyAgICBpZiAoIW1f
bWFuYWdlcikKKyAgICAgICAgcmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd247
CisKKyAgICBpZiAoIW1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSB8fCAqbV9hY3RpdmVTeW5jQWNj
ZXNzSGFuZGxlICE9IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpCisgICAgICAgIHJldHVybiBGaWxl
U3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOworCisgICAgYXV0byBoYW5kbGUgPSBGaWxlU3lz
dGVtOjpvcGVuRmlsZShtX3BhdGgsIEZpbGVTeXN0ZW06OkZpbGVPcGVuTW9kZTo6UmVhZFdyaXRl
KTsKKyAgICBhdXRvIGNsb3NlRmlsZVNjb3BlID0gbWFrZVNjb3BlRXhpdChbJl0geworICAgICAg
ICBGaWxlU3lzdGVtOjpjbG9zZUZpbGUoaGFuZGxlKTsKKyAgICB9KTsKKworICAgIGF1dG8gcmVz
dWx0ID0gRmlsZVN5c3RlbTo6dHJ1bmNhdGVGaWxlKGhhbmRsZSwgc2l6ZSk7CisgICAgaWYgKCFy
ZXN1bHQpCisgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOwor
CisgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKK30KKworc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVt
U3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Zmx1c2goV2ViQ29yZTo6Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIp
Cit7CisgICAgaWYgKCFtX21hbmFnZXIpCisgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFn
ZUVycm9yOjpVbmtub3duOworCisgICAgaWYgKCFtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgfHwg
Km1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSAhPSBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKQorICAg
ICAgICByZXR1cm4gRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bjsKKworICAgIC8vIEZJ
WE1FOiB3aGVuIHdyaXRlIG9wZXJhdGlvbiBpcyBpbXBsZW1lbnRlZCwgcGVyZm9ybSBhY3R1YWwg
Zmx1c2ggaGVyZS4KKyAgICByZXR1cm4gc3RkOjpudWxsb3B0OworfQorCitzdGQ6Om9wdGlvbmFs
PEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpjbG9zZShX
ZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxl
SWRlbnRpZmllcikKK3sKKyAgICBpZiAoIW1fbWFuYWdlcikKKyAgICAgICAgcmV0dXJuIEZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd247CisKKyAgICBpZiAoIW1fYWN0aXZlU3luY0FjY2Vz
c0hhbmRsZSB8fCAqbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlICE9IGFjY2Vzc0hhbmRsZUlkZW50
aWZpZXIpCisgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOwor
CisgICAgbV9tYW5hZ2VyLT5yZWxlYXNlTG9ja0ZvckZpbGUobV9wYXRoLCBtX2lkZW50aWZpZXIp
OworICAgIG1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSA9IHN0ZDo6bnVsbG9wdDsKKworICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdl
SGFuZGxlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3Rl
bVN0b3JhZ2VIYW5kbGUuaAppbmRleCA4Nzk5MDkwN2Q5Yjg5YTUyM2Y3ZmYxZjU1MDcwYTU3MDY0
MGFiM2IyLi5lNDdlZDNhMTZlZTk1YWIxZDE0OTkzOGQxOTdmNjQ2M2Q5NzQ5MDE3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3Jh
Z2VIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmls
ZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiQ29u
bmVjdGlvbi5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
ci5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAt
NDksNiArNTAsMTIgQEAgcHVibGljOgogICAgIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvcj4gcmVtb3ZlRW50cnkoY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vy
c2l2ZWx5KTsKICAgICBFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgRmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcj4gcmVzb2x2ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcik7CiAKKyAg
ICBFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIs
IEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKTsKKyAgICBF
eHBlY3RlZDx1aW50NjRfdCwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gZ2V0U2l6ZShXZWJDb3Jl
OjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpOworICAgIHN0ZDo6b3B0aW9u
YWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gdHJ1bmNhdGUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXplKTsKKyAgICBzdGQ6Om9wdGlv
bmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGZsdXNoKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllcik7CisgICAgc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yPiBjbG9zZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50
aWZpZXIpOworCiBwcml2YXRlOgogICAgIEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXF1ZXN0Q3JlYXRlSGFuZGxl
KElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQsIFR5cGUsIFN0cmluZyYmIG5hbWUsIGJvb2wgY3Jl
YXRlSWZOZWNlc3NhcnkpOwogCkBAIC01Nyw2ICs2NCw3IEBAIHByaXZhdGU6CiAgICAgVHlwZSBt
X3R5cGU7CiAgICAgU3RyaW5nIG1fcGF0aDsKICAgICBTdHJpbmcgbV9uYW1lOworICAgIHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyPiBt
X2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVt
U3RvcmFnZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdl
L0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5jcHAKaW5kZXggMWI3YTUxYTJmNjg4NDE1YzM5NmI1
YjQ4ZmRjMDVmOTk1ZmM2ZDNkZS4uYzM5NjUxYjkzMDkxMTJkZGQyMmQ4NTU5ZTY2MTAyZDRiZWEw
YTc4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0Zp
bGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5jcHAKQEAgLTg3LDE1ICs4Nywy
MSBAQCB2b2lkIEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlcjo6Y29ubmVjdGlvbkNsb3NlZChJUEM6
OkNvbm5lY3Rpb246OlVuaXF1ZUlEIGNvbm5lYwogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNN
YWluKCkpOwogCi0gICAgYXV0byBoYW5kbGVzID0gbV9oYW5kbGVzQnlDb25uZWN0aW9uLmZpbmQo
Y29ubmVjdGlvbik7Ci0gICAgaWYgKGhhbmRsZXMgPT0gbV9oYW5kbGVzQnlDb25uZWN0aW9uLmVu
ZCgpKQorICAgIGF1dG8gY29ubmVjdGlvbkhhbmRsZXMgPSBtX2hhbmRsZXNCeUNvbm5lY3Rpb24u
ZmluZChjb25uZWN0aW9uKTsKKyAgICBpZiAoY29ubmVjdGlvbkhhbmRsZXMgPT0gbV9oYW5kbGVz
QnlDb25uZWN0aW9uLmVuZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBmb3IgKGF1dG8gaGFu
ZGxlSWRlbnRpZmllciA6IGhhbmRsZXMtPnZhbHVlKSB7Ci0gICAgICAgIGF1dG8gaGFuZGxlID0g
bV9oYW5kbGVzLnRha2UoaGFuZGxlSWRlbnRpZmllcik7Ci0gICAgICAgIG1fcmVnaXN0cnkudW5y
ZWdpc3RlckhhbmRsZShoYW5kbGVJZGVudGlmaWVyKTsKKyAgICBhdXRvIGlkZW50aWZpZXJzID0g
Y29ubmVjdGlvbkhhbmRsZXMtPnZhbHVlOworICAgIGZvciAoYXV0byBpZGVudGlmaWVyIDogaWRl
bnRpZmllcnMpIHsKKyAgICAgICAgYXV0byBoYW5kbGUgPSBtX2hhbmRsZXMudGFrZShpZGVudGlm
aWVyKTsKKyAgICAgICAgbV9yZWdpc3RyeS51bnJlZ2lzdGVySGFuZGxlKGlkZW50aWZpZXIpOwog
ICAgIH0KLSAgICBtX2hhbmRsZXNCeUNvbm5lY3Rpb24ucmVtb3ZlKGhhbmRsZXMpOworCisgICAg
bV9sb2NrTWFwLnJlbW92ZUlmKFsmaWRlbnRpZmllcnNdKGF1dG8mIGVudHJ5KSB7CisgICAgICAg
IHJldHVybiBpZGVudGlmaWVycy5jb250YWlucyhlbnRyeS52YWx1ZSk7CisgICAgfSk7CisKKyAg
ICBtX2hhbmRsZXNCeUNvbm5lY3Rpb24ucmVtb3ZlKGNvbm5lY3Rpb25IYW5kbGVzKTsKIH0KIAog
RXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlcjo6Z2V0RGlyZWN0b3J5KElQQzo6
Q29ubmVjdGlvbjo6VW5pcXVlSUQgY29ubmVjdGlvbikKQEAgLTEwNSw0ICsxMTEsMjMgQEAgRXhw
ZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9y
YWdlRXJyb3I+IEZpbGVTeXN0ZW0KICAgICByZXR1cm4gY3JlYXRlSGFuZGxlKGNvbm5lY3Rpb24s
IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpUeXBlOjpEaXJlY3RvcnksIFN0cmluZyB7IG1fcGF0
aCB9LCB7IH0sIHRydWUpOwogfQogCitib29sIEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlcjo6YWNx
dWlyZUxvY2tGb3JGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCwgV2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBpZiAobV9sb2NrTWFwLmNvbnRhaW5z
KHBhdGgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBtX2xvY2tNYXAuYWRkKHBhdGgs
IGlkZW50aWZpZXIpOworICAgIHJldHVybiB0cnVlOworfQorCitib29sIEZpbGVTeXN0ZW1TdG9y
YWdlTWFuYWdlcjo6cmVsZWFzZUxvY2tGb3JGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCwgV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBpZiAoYXV0
byBsb2NrZWRCeUlkZW50aWZpZXIgPSBtX2xvY2tNYXAuZ2V0KHBhdGgpOyBsb2NrZWRCeUlkZW50
aWZpZXIgPT0gaWRlbnRpZmllcikgeworICAgICAgICBtX2xvY2tNYXAucmVtb3ZlKHBhdGgpOwor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oCmluZGV4IDhi
NDM4YjJlOTNkZjRhODQ0N2MzYjc3NDBiYzU0Yzg3ZmNhNDMxOWYuLjFhZWJhOWRhZjc5NjhjNjhk
OGZlOGIzYmU3YjY3NTUyODNkNzYxMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmgK
QEAgLTQzLDEyICs0MywxNSBAQCBwdWJsaWM6CiAgICAgY29uc3QgU3RyaW5nJiBnZXRQYXRoKFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyKTsKICAgICB2b2lkIGNvbm5lY3Rpb25D
bG9zZWQoSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCk7CiAgICAgRXhwZWN0ZWQ8V2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGdldERp
cmVjdG9yeShJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEKTsKKyAgICBib29sIGFjcXVpcmVMb2Nr
Rm9yRmlsZShjb25zdCBTdHJpbmcmIHBhdGgsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyKTsKKyAgICBib29sIHJlbGVhc2VMb2NrRm9yRmlsZShjb25zdCBTdHJpbmcmIHBhdGgs
IFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyKTsKIAogcHJpdmF0ZToKICAgICBT
dHJpbmcgbV9wYXRoOwogICAgIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkmIG1fcmVn
aXN0cnk7CiAgICAgSGFzaE1hcDxJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlELCBIYXNoU2V0PFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyPj4gbV9oYW5kbGVzQnlDb25uZWN0aW9u
OwogICAgIEhhc2hNYXA8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIHN0ZDo6
dW5pcXVlX3B0cjxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZT4+IG1faGFuZGxlczsKKyAgICBIYXNo
TWFwPFN0cmluZywgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXI+IG1fbG9ja01h
cDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNw
cAppbmRleCA2N2FlYmE1MjA2YTY2MmM2MWQ5YjBlNTZkNTU5NTA5Y2IxMmE1MDI1Li4zNjg2MTc0
MjgxODBkNzg0NmIyZDYyZjA2MGU5OWU1ZGM3YTdkZDYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5h
Z2VyLmNwcApAQCAtMjI2LDUgKzIyNiw2MCBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6
cmVzb2x2ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaQogICAg
IGNvbXBsZXRpb25IYW5kbGVyKGhhbmRsZS0+cmVzb2x2ZSh0YXJnZXRJZGVudGlmaWVyKSk7CiB9
CiAKK3ZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIp
Cit7CisgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CisKKyAgICBhdXRvIGhhbmRsZSA9
IG1fZmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeS0+Z2V0SGFuZGxlKGlkZW50aWZpZXIp
OworICAgIGlmICghaGFuZGxlKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIobWFr
ZVVuZXhwZWN0ZWQoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bikpOworCisgICAgY29t
cGxldGlvbkhhbmRsZXIoaGFuZGxlLT5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlKCkpOworfQorCit2
b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Z2V0U2l6ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDx1aW50NjRfdCwgRmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNN
YWluKCkpOworCisgICAgYXV0byBoYW5kbGUgPSBtX2ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVn
aXN0cnktPmdldEhhbmRsZShpZGVudGlmaWVyKTsKKyAgICBpZiAoIWhhbmRsZSkKKyAgICAgICAg
cmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKG1ha2VVbmV4cGVjdGVkKEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I6OlVua25vd24pKTsKKworICAgIGNvbXBsZXRpb25IYW5kbGVyKGhhbmRsZS0+Z2V0U2l6
ZShhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSk7Cit9CisKK3ZvaWQgTmV0d29ya1N0b3JhZ2VNYW5h
Z2VyOjp0cnVuY2F0ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKKwor
ICAgIGF1dG8gaGFuZGxlID0gbV9maWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5LT5nZXRI
YW5kbGUoaWRlbnRpZmllcik7CisgICAgaWYgKCFoYW5kbGUpCisgICAgICAgIHJldHVybiBjb21w
bGV0aW9uSGFuZGxlcihGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duKTsKKworICAgIGNv
bXBsZXRpb25IYW5kbGVyKGhhbmRsZS0+dHJ1bmNhdGUoYWNjZXNzSGFuZGxlSWRlbnRpZmllciwg
c2l6ZSkpOworfQorCit2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Zmx1c2hGb3JBY2Nlc3NI
YW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2Vi
Q29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVt
U3RvcmFnZUVycm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgQVNTRVJUKCFSdW5M
b29wOjppc01haW4oKSk7CisKKyAgICBhdXRvIGhhbmRsZSA9IG1fZmlsZVN5c3RlbVN0b3JhZ2VI
YW5kbGVSZWdpc3RyeS0+Z2V0SGFuZGxlKGlkZW50aWZpZXIpOworICAgIGlmICghaGFuZGxlKQor
ICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6
VW5rbm93bik7CisKKyAgICBjb21wbGV0aW9uSGFuZGxlcihoYW5kbGUtPmZsdXNoKGFjY2Vzc0hh
bmRsZUlkZW50aWZpZXIpKTsKK30KKwordm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmNsb3Nl
QWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NI
YW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8Rmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIEFTU0VS
VCghUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgYXV0byBoYW5kbGUgPSBtX2ZpbGVTeXN0ZW1T
dG9yYWdlSGFuZGxlUmVnaXN0cnktPmdldEhhbmRsZShpZGVudGlmaWVyKTsKKyAgICBpZiAoIWhh
bmRsZSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I6OlVua25vd24pOworCisgICAgY29tcGxldGlvbkhhbmRsZXIoaGFuZGxlLT5jbG9zZShh
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0
b3JhZ2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0
d29ya1N0b3JhZ2VNYW5hZ2VyLmgKaW5kZXggMWI4MTBkZjc4ZDczZDJmZjA5ZTg0ZGUyY2NiMjJi
YTA2MTgwMTFjOC4uYTgxODg1MWZmMTQ1Mzg2OGE3NGQxNzZmYjZjYjI4ZjIxYWIzMjMxYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9y
YWdlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9O
ZXR3b3JrU3RvcmFnZU1hbmFnZXIuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIk9yaWdp
blN0b3JhZ2VNYW5hZ2VyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DbGllbnRPcmlnaW4uaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIuaD4KICNpbmNsdWRl
IDxwYWwvU2Vzc2lvbklELmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTY5LDYgKzcwLDEx
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXREaXJlY3RvcnlIYW5kbGUoSVBDOjpDb25uZWN0aW9u
JiwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFN0cmluZyYmIG5hbWUsIGJv
b2wgY3JlYXRlSWZOZWNlc3NhcnksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2Vi
Q29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+
KT4mJik7CiAgICAgdm9pZCByZW1vdmVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4p
PiYmKTsKICAgICB2b2lkIHJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+
JiYpOworICAgIHZvaWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxXZWJDb3Jl
OjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I+KT4mJik7CisgICAgdm9pZCBnZXRTaXplRm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8dWludDY0X3Qs
IEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CisgICAgdm9pZCB0cnVuY2F0ZUZvckFjY2Vz
c0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXplLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYm
KTsKKyAgICB2b2lkIGZsdXNoRm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFn
ZUVycm9yPik+JiYpOworICAgIHZvaWQgY2xvc2VBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
SWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAKICAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsK
ICAgICBSZWY8V29ya1F1ZXVlPiBtX3F1ZXVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFn
ZXIubWVzc2FnZXMuaW4KaW5kZXggNjJlNzQwM2NiYjcwMGFkOTZiYmViZTBmZWI4MjA1YzgxNjIy
NGZmNy4uNGZlYTI3NjVmZDkyYTk4MDYwY2QwNDAwNjJjNWU5NDU1YzgxOWZjMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFu
YWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3Jh
Z2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0zMiw0ICszMiwxMCBAQAog
ICAgIEdldERpcmVjdG9yeUhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBTdHJpbmcgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSkgLT4gKEV4
cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJLaXQ6OkZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMgV2FudHNDb25uZWN0aW9uCiAgICAgUmVt
b3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwg
U3RyaW5nIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHkpIC0+IChzdGQ6Om9wdGlvbmFsPFdl
YktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYwogICAgIFJlc29sdmUo
V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgdGFyZ2V0SWRlbnRpZmllcikgLT4gKEV4cGVjdGVk
PFZlY3RvcjxTdHJpbmc+LCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkg
QXN5bmMKKworICAgIENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yPiByZXN1bHQpIEFzeW5jCisgICAgR2V0U2l6ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllcikgLT4gKEV4
cGVjdGVkPHVpbnQ2NF90LCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkg
QXN5bmMKKyAgICBUcnVuY2F0ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSkgLT4g
KHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFz
eW5jCisgICAgRmx1c2hGb3JBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYktp
dDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYworICAgIENsb3NlQWNjZXNz
SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdl
YkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I+IHJlc3VsdCkgQXN5bmMKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93
ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2Vz
LnB5CmluZGV4IGVkOTRhM2VlNTY2OGEzNDhiYzc2YWRiZDQyYjY1MDA3MWQxYjk1MWEuLjU5NmIz
ZmFiNjU4NjZiZGVmNTgxMjgwZDkxMTYyMGMwNzRmNjdlZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3Jp
cHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMjgyLDYgKzI4Miw3IEBAIGRlZiB0eXBlc190aGF0
X2Nhbm5vdF9iZV9mb3J3YXJkX2RlY2xhcmVkKCk6CiAgICAgICAgICdXZWJDb3JlOjpEcmFnQXBw
bGljYXRpb25GbGFncycsCiAgICAgICAgICdXZWJDb3JlOjpGZXRjaElkZW50aWZpZXInLAogICAg
ICAgICAnV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXInLAorICAgICAgICAnV2Vi
Q29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyJywKICAgICAgICAgJ1dl
YkNvcmU6OkZyYW1lSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHRHTEF0dHJpYnV0ZXMnLAogICAgICAgICAnV2ViQ29yZTo6SW1hZ2VEZWNvZGVySWRlbnRpZmll
cicsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCmlu
ZGV4IGIwNTRjOTIzOGJkZDJmY2VjODEyOWIwMzA2YjUzYmJmYjFjN2RmOTMuLjdhMjM4YWNhNGMz
OGQ2NzU1NGE3ZGE2M2VlN2RmZTI1NmM3YmNkOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIHZvaWQgV2ViRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpnZXRGaWxlSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0
ZW1IYW5kbGVJZGVuCiAKICAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNz
YWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpHZXRGaWxlSGFuZGxlKGlkZW50aWZpZXIsIG5h
bWUsIGNyZWF0ZUlmTmVjZXNzYXJ5KSwgW25hbWUsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYg
KCFyZXN1bHQpCi0gICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6
RXhjZXB0aW9uIHsgY29udmVydFRvRXhjZXB0aW9uQ29kZShyZXN1bHQuZXJyb3IoKSkgfSk7Cisg
ICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoY29udmVydFRvRXhjZXB0aW9uKHJl
c3VsdC5lcnJvcigpKSk7CiAKICAgICAgICAgYXV0byBpZGVudGlmaWVyID0gcmVzdWx0LnZhbHVl
KCk7CiAgICAgICAgIGlmICghaWRlbnRpZmllci5pc1ZhbGlkKCkpCkBAIC04NCw3ICs4NCw3IEBA
IHZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpnZXREaXJlY3RvcnlIYW5kbGUo
V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsCiAKICAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5
bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpHZXREaXJlY3RvcnlIYW5k
bGUoaWRlbnRpZmllciwgbmFtZSwgY3JlYXRlSWZOZWNlc3NhcnkpLCBbbmFtZSwgY29tcGxldGlv
bkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byByZXN1bHQpIG11dGFi
bGUgewogICAgICAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9u
SGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBjb252ZXJ0VG9FeGNlcHRpb25Db2RlKHJlc3Vs
dC5lcnJvcigpKSB9KTsKKyAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihjb252
ZXJ0VG9FeGNlcHRpb24ocmVzdWx0LmVycm9yKCkpKTsKIAogICAgICAgICBhdXRvIGlkZW50aWZp
ZXIgPSByZXN1bHQudmFsdWUoKTsKICAgICAgICAgaWYgKCFpZGVudGlmaWVyLmlzVmFsaWQoKSkK
QEAgLTk0LDE2ICs5NCwxMyBAQCB2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6
Z2V0RGlyZWN0b3J5SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbAogICAgIH0pOwogfQog
Ci12b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6cmVtb3ZlRW50cnkoV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBu
YW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OlJlbW92ZUVudHJ5Q2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQg
V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpyZW1vdmVFbnRyeShXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJv
b2wgZGVsZXRlUmVjdXJzaXZlbHksIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bjo6Vm9pZENhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFtX2Nvbm5l
Y3Rpb24pCiAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRp
b24geyBXZWJDb3JlOjpVbmtub3duRXJyb3IsICJDb25uZWN0aW9uIGlzIGxvc3QiIH0pOwogCiAg
ICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9y
YWdlTWFuYWdlcjo6UmVtb3ZlRW50cnkoaWRlbnRpZmllciwgbmFtZSwgZGVsZXRlUmVjdXJzaXZl
bHkpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0
byBlcnJvcikgbXV0YWJsZSB7Ci0gICAgICAgIGlmIChlcnJvcikKLSAgICAgICAgICAgIHJldHVy
biBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBjb252ZXJ0VG9FeGNlcHRp
b25Db2RlKGVycm9yLnZhbHVlKCkpIH0pOwotCi0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHsg
fSk7CisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihjb252ZXJ0VG9FeGNlcHRpb25P
cihlcnJvcikpOwogICAgIH0pOwogfQogCkBAIC0xMTQsMTAgKzExMSw2NiBAQCB2b2lkIFdlYkZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6cmVzb2x2ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllcgogCiAgICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6UmVzb2x2ZShpZGVudGlmaWVyLCBvdGhlcklk
ZW50aWZpZXIpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KV0oYXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAg
ICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBjb252ZXJ0
VG9FeGNlcHRpb25Db2RlKHJlc3VsdC5lcnJvcigpKSB9KTsKKyAgICAgICAgICAgIHJldHVybiBj
b21wbGV0aW9uSGFuZGxlcihjb252ZXJ0VG9FeGNlcHRpb24ocmVzdWx0LmVycm9yKCkpKTsKKwor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdC52YWx1ZSgpKSk7CisgICAg
fSk7Cit9CisKK3ZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGVTeW5j
QWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0QWNjZXNzSGFuZGxl
Q2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoIW1fY29ubmVjdGlvbikK
KyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdl
YkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5lY3Rpb24gaXMgbG9zdCIgfSk7CisKKyAgICBtX2Nv
bm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5h
Z2VyOjpDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKGlkZW50aWZpZXIpLCBbY29tcGxldGlvbkhhbmRs
ZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byByZXN1bHQpIG11dGFibGUgewor
ICAgICAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxl
cihjb252ZXJ0VG9FeGNlcHRpb24ocmVzdWx0LmVycm9yKCkpKTsKIAogICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdC52YWx1ZSgpKSk7CiAgICAgfSk7CiB9CiAKK3ZvaWQg
V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpnZXRTaXplKFdlYkNvcmU6OkZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBJbnRlZ2VyQ2FsbGJh
Y2smJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoIW1fY29ubmVjdGlvbikKKyAgICAg
ICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6
OlVua25vd25FcnJvciwgIkNvbm5lY3Rpb24gaXMgbG9zdCIgfSk7CisKKyAgICBtX2Nvbm5lY3Rp
b24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpH
ZXRTaXplRm9yQWNjZXNzSGFuZGxlKGlkZW50aWZpZXIsIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIp
LCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byBy
ZXN1bHQpIG11dGFibGUgeworICAgICAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgICAgIHJldHVy
biBjb21wbGV0aW9uSGFuZGxlcihjb252ZXJ0VG9FeGNlcHRpb24ocmVzdWx0LmVycm9yKCkpKTsK
KworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihyZXN1bHQudmFsdWUoKSk7CisgICAgfSk7Cit9
CisKK3ZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjp0cnVuY2F0ZShXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdWlu
dDY0X3Qgc2l6ZSwgVm9pZENhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYg
KCFtX2Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3Jl
OjpFeGNlcHRpb24geyBXZWJDb3JlOjpVbmtub3duRXJyb3IsICJDb25uZWN0aW9uIGlzIGxvc3Qi
IH0pOworCisgICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5l
dHdvcmtTdG9yYWdlTWFuYWdlcjo6VHJ1bmNhdGVGb3JBY2Nlc3NIYW5kbGUoaWRlbnRpZmllciwg
YWNjZXNzSGFuZGxlSWRlbnRpZmllciwgc2l6ZSksIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIGVycm9yKSBtdXRhYmxlIHsKKyAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoY29udmVydFRvRXhjZXB0aW9uT3IoZXJyb3IpKTsKKyAgICB9KTsKK30K
Kwordm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmZsdXNoKFdlYkNvcmU6OkZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBWb2lkQ2Fs
bGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoIW1fY29ubmVjdGlvbikKKyAg
ICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNv
cmU6OlVua25vd25FcnJvciwgIkNvbm5lY3Rpb24gaXMgbG9zdCIgfSk7CisKKyAgICBtX2Nvbm5l
Y3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2Vy
OjpGbHVzaEZvckFjY2Vzc0hhbmRsZShpZGVudGlmaWVyLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVy
KSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8g
ZXJyb3IpIG11dGFibGUgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjb252ZXJ0VG9FeGNl
cHRpb25PcihlcnJvcikpOworICAgIH0pOworfQorCit2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbjo6Y2xvc2UoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRl
bnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIsIFZvaWRDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQor
eworICAgIGlmICghbV9jb25uZWN0aW9uKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRs
ZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAiQ29ubmVjdGlv
biBpcyBsb3N0IiB9KTsKKworICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1l
c3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OkNsb3NlQWNjZXNzSGFuZGxlKGlkZW50aWZp
ZXIsIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byBlcnJvcikgbXV0YWJsZSB7CisgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKGNvbnZlcnRUb0V4Y2VwdGlvbk9yKGVycm9yKSk7CisgICAgfSk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5oCmluZGV4IGI2MDFiZTY0MzUzZGFmYzc3N2M2YmNlNDJiMWU5ZjI5MTM5MjMw
YzIuLmUwNzJlOWY5MzIzNGU3ZjJhNmU2OTE3NGM3ZTY5NGYzOGZhZDVhNzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTUxLDkgKzUxLDE1IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBpc1NhbWVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6
OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6U2FtZUVudHJ5Q2FsbGJhY2smJik7CiAgICAg
dm9pZCBnZXRGaWxlSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIFdlYkNvcmU6OkZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0SGFuZGxlQ2FsbGJhY2smJik7CiAgICAgdm9pZCBn
ZXREaXJlY3RvcnlIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgV2ViQ29yZTo6RmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRIYW5kbGVDYWxsYmFjayYmKTsKLSAgICB2b2lkIHJl
bW92ZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHksIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbjo6UmVtb3ZlRW50cnlDYWxsYmFjayYmKTsKKyAgICB2b2lkIHJlbW92ZUVu
dHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5h
bWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHksIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbjo6Vm9pZENhbGxiYWNrJiYpOwogICAgIHZvaWQgcmVzb2x2ZShXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6UmVzb2x2ZUNhbGxiYWNr
JiYpOwogCisgICAgdm9pZCBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246
OkdldEFjY2Vzc0hhbmRsZUNhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgZ2V0U2l6ZShXZWJD
b3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b246OkludGVnZXJDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIHRydW5jYXRlKFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIsIHVpbnQ2NF90IHNpemUsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbjo6Vm9pZENhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgZmx1c2goV2Vi
Q29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uOjpWb2lkQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBjbG9zZShXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRD
YWxsYmFjayYmKSBmaW5hbDsKKwogICAgIFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVj
dGlvbjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJTdG9yYWdlQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViU3RvcmFnZUNvbm5lY3Rpb24uY3BwCmluZGV4IDJhY2I1ZmFh
ZjNmNDZkN2Y4NGRiYmJiODczMzJkMzM2NTQ5MDM3NmQuLmU3MDkwNTA3Mzk5MmFkZTRmNDk3MWE0
NzYwYzAyNzM3ODM3ZmE4MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJTdG9yYWdlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlN0b3JhZ2VDb25uZWN0aW9uLmNwcApAQCAt
NTYsNyArNTYsNyBAQCB2b2lkIFdlYlN0b3JhZ2VDb25uZWN0aW9uOjpmaWxlU3lzdGVtR2V0RGly
ZWN0b3J5KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgbwogICAgIGF1dG8mIGNvbm5lY3Rp
b24gPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24oKS5jb25uZWN0aW9uKCk7CiAgICAgY29ubmVjdGlvbi5zZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6RmlsZVN5c3RlbUdldERpcmVjdG9yeShvcmln
aW4pLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0
byByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgICAgIHJl
dHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBjb252ZXJ0VG9FeGNl
cHRpb25Db2RlKHJlc3VsdC5lcnJvcigpKSB9KTsKKyAgICAgICAgICAgIHJldHVybiBjb21wbGV0
aW9uSGFuZGxlcihjb252ZXJ0VG9FeGNlcHRpb24ocmVzdWx0LmVycm9yKCkpKTsKIAogICAgICAg
ICBhdXRvIGlkZW50aWZpZXIgPSByZXN1bHQudmFsdWUoKTsKICAgICAgICAgaWYgKCFpZGVudGlm
aWVyLmlzVmFsaWQoKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiNGI2NzY4NWZjYjAxYmI3ZTU1ZWVkMjA5MGFmNzU0YjM4
OTA0Y2MyLi41ZDgwNzNmZTlhOGYwYzZjZGU2ZDU1NzQ3MDQ1Y2JmM2U0NzZiNTNmIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMjEtMTAtMDUgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzExODUK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzODQ3ODU5PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3Jl
c291cmNlcy9zeW5jLWFjY2Vzcy1oYW5kbGUtYmFzaWNzLmpzOiBBZGRlZC4KKyAgICAgICAgKGZp
bmlzaFRlc3QpOgorICAgICAgICAoZ2V0RGlyZWN0b3J5KToKKyAgICAgICAgKiBzdG9yYWdlL2Zp
bGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLWJhc2ljcy13b3JrZXItZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nl
c3MtaGFuZGxlLWJhc2ljcy13b3JrZXIuaHRtbDogQWRkZWQuCisKIDIwMjEtMTAtMDUgIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAo
cjI4MzMzNSk6IE1vbWVudHVtIHNjcm9sbGluZyBpcyBubyBsb25nZXIgbG9ja2VkIHRvIGFuIGF4
aXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDdjNGNmN2I0YTllMWEzZmVkZTRh
MWYwNTcwNzNmYjBlZmVjODVlZTYuLjI1YTFmNDQyM2Y5YTExOTI2NDEyNzI4MDZjMWJkNzkyNWVi
Yzc4NjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisy
MDIxLTEwLTA1ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEFk
ZCBzdXBwb3J0IGZvciBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMTg1CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS84Mzg0Nzg1OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9maWxlLXN5c3RlbS1hY2Nlc3Mvc2FuZGJv
eGVkX0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLXN5bmMtYWNjZXNzLWhhbmRsZS1sb2NrLmh0dHBzLnRl
bnRhdGl2ZS53b3JrZXItZXhwZWN0ZWQudHh0OgorCiAyMDIxLTEwLTA1ICBNYXJ0aW4gUm9iaW5z
b24gIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4KIAogICAgICAgICBbY3NzLXBvc2l0aW9uLXN0aWNr
eV0gc2Nyb2xsSW50b1ZpZXcgc2hvdWxkIG5vdCB0YWtlIGludG8gYWNjb3VudCBzdGlja3kgcG9z
aXRpb25pbmcgb2Zmc2V0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9maWxlLXN5c3RlbS1hY2Nlc3Mvc2FuZGJveGVkX0ZpbGVTeXN0ZW1G
aWxlSGFuZGxlLXN5bmMtYWNjZXNzLWhhbmRsZS1sb2NrLmh0dHBzLnRlbnRhdGl2ZS53b3JrZXIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9maWxlLXN5c3RlbS1hY2Nlc3Mvc2FuZGJveGVkX0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLXN5bmMt
YWNjZXNzLWhhbmRsZS1sb2NrLmh0dHBzLnRlbnRhdGl2ZS53b3JrZXItZXhwZWN0ZWQudHh0Cmlu
ZGV4IGI0NjI4YTdkZjIyZGZlODhhN2IzNzEyZmZiMzY3ZGZjY2VlZTg3MDQuLjdkYWRjMmQ0ZjA2
ZDg0NGEyMTJmNjQwNGMwZDFhYjlmNTYzNzBjYjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmlsZS1zeXN0ZW0tYWNjZXNzL3NhbmRib3hl
ZF9GaWxlU3lzdGVtRmlsZUhhbmRsZS1zeW5jLWFjY2Vzcy1oYW5kbGUtbG9jay5odHRwcy50ZW50
YXRpdmUud29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZpbGUtc3lzdGVtLWFjY2Vzcy9zYW5kYm94ZWRfRmlsZVN5c3Rl
bUZpbGVIYW5kbGUtc3luYy1hY2Nlc3MtaGFuZGxlLWxvY2suaHR0cHMudGVudGF0aXZlLndvcmtl
ci1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACiAKLUZBSUwgVGhlcmUgY2FuIG9ubHkgYmUg
b25lIG9wZW4gYWNjZXNzIGhhbmRsZSBhdCBhbnkgZ2l2ZW4gdGltZSBwcm9taXNlX3Rlc3Q6IFVu
aGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IGZpbGVIYW5k
bGUuY3JlYXRlU3luY0FjY2Vzc0hhbmRsZSBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdmaWxlSGFu
ZGxlLmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKScsICdmaWxlSGFuZGxlLmNyZWF0ZVN5bmNBY2Nl
c3NIYW5kbGUnIGlzIHVuZGVmaW5lZCkiCi1GQUlMIEFuIGFjY2VzcyBoYW5kbGUgZnJvbSBvbmUg
ZmlsZSBkb2VzIG5vdCBpbnRlcmZlcmUgd2l0aCB0aGUgY3JlYXRpb24gb2YgYW4gYWNjZXNzIGhh
bmRsZSBvbiBhbm90aGVyIGZpbGUgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdp
dGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBmb29GaWxlSGFuZGxlLmNyZWF0ZVN5bmNBY2Nl
c3NIYW5kbGUgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnZm9vRmlsZUhhbmRsZS5jcmVhdGVTeW5j
QWNjZXNzSGFuZGxlKCknLCAnZm9vRmlsZUhhbmRsZS5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlJyBp
cyB1bmRlZmluZWQpIgorUEFTUyBUaGVyZSBjYW4gb25seSBiZSBvbmUgb3BlbiBhY2Nlc3MgaGFu
ZGxlIGF0IGFueSBnaXZlbiB0aW1lCitQQVNTIEFuIGFjY2VzcyBoYW5kbGUgZnJvbSBvbmUgZmls
ZSBkb2VzIG5vdCBpbnRlcmZlcmUgd2l0aCB0aGUgY3JlYXRpb24gb2YgYW4gYWNjZXNzIGhhbmRs
ZSBvbiBhbm90aGVyIGZpbGUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxl
c3lzdGVtYWNjZXNzL3Jlc291cmNlcy9zeW5jLWFjY2Vzcy1oYW5kbGUtYmFzaWNzLmpzIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3Jlc291cmNlcy9zeW5jLWFjY2Vzcy1o
YW5kbGUtYmFzaWNzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk2NzEyNWE0NmRjNmI2ZWMzZmNmZWYxMzk0YTg2
MDhjODY1Mjg3MmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVz
eXN0ZW1hY2Nlc3MvcmVzb3VyY2VzL3N5bmMtYWNjZXNzLWhhbmRsZS1iYXNpY3MuanMKQEAgLTAs
MCArMSw4MSBAQAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgeworICAgIGltcG9ydFNjcmlwdHMo
Jy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzJyk7Cit9CisKK2Rlc2NyaXB0aW9uKCJUaGlz
IHRlc3QgY2hlY2tzIGJhc2ljIGZ1bnRpb25hbGl0aWVzIG9mIEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlLiIpOworCit2YXIgcm9vdEhhbmRsZSwgZmlsZUhhbmRsZSwgYWNjZXNzSGFuZGxlMSwg
YWNjZXNzSGFuZGxlMiwgY3JlYXRlRXJyb3I7CisKK2Z1bmN0aW9uIGZpbmlzaFRlc3QoZXJyb3Ip
Cit7CisgICAgaWYgKGVycm9yKSB7CisgICAgICAgIHRlc3RGYWlsZWQoZXJyb3IpOworICAgIH0K
KyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworZnVuY3Rpb24gZ2V0RGlyZWN0b3J5KCkgeworICAg
IG5hdmlnYXRvci5zdG9yYWdlLmdldERpcmVjdG9yeSgpLnRoZW4oKGhhbmRsZSkgPT4geworICAg
ICAgICByb290SGFuZGxlID0gaGFuZGxlOworICAgICAgICBjcmVhdGVGaWxlSGFuZGxlKHJvb3RI
YW5kbGUpOworICAgIH0pLmNhdGNoKChlcnJvcikgPT4geworICAgICAgICBmaW5pc2hUZXN0KGVy
cm9yKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gY3JlYXRlRmlsZUhhbmRsZShmcm9tSGFuZGxl
KSB7CisgICAgZnJvbUhhbmRsZS5nZXRGaWxlSGFuZGxlKCJzeW5jLWFjY2Vzcy1oYW5kbGUudHh0
IiwgeyAiY3JlYXRlIiA6IHRydWUgfSkudGhlbigoaGFuZGxlKSA9PiB7CisgICAgICAgIGZpbGVI
YW5kbGUgPSBoYW5kbGU7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZmlsZUhhbmRs
ZS5uYW1lIiwgInN5bmMtYWNjZXNzLWhhbmRsZS50eHQiKTsKKyAgICAgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJmaWxlSGFuZGxlLmtpbmQiLCAiZmlsZSIpOworICAgICAgICBjcmVhdGVTeW5j
QWNjZXNzSGFuZGxlKGZpbGVIYW5kbGUpOworICAgIH0pLmNhdGNoKChlcnJvcikgPT4geworICAg
ICAgICBmaW5pc2hUZXN0KGVycm9yKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gY3JlYXRlU3lu
Y0FjY2Vzc0hhbmRsZShmcm9tSGFuZGxlKSB7CisgICAgZnJvbUhhbmRsZS5jcmVhdGVTeW5jQWNj
ZXNzSGFuZGxlKCkudGhlbigoaGFuZGxlKSA9PiB7CisgICAgICAgIGFjY2Vzc0hhbmRsZTEgPSBo
YW5kbGU7CisgICAgICAgIGRlYnVnKCJhY2Nlc3NIYW5kbGUxIGlzIGNyZWF0ZWQiKTsKKyAgICAg
ICAgZ2V0U2l6ZShhY2Nlc3NIYW5kbGUxKTsKKyAgICB9KS5jYXRjaCgoZXJyb3IpID0+IHsKKyAg
ICAgICAgZmluaXNoVGVzdChlcnJvcik7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIGdldFNpemUo
YWNjZXNzSGFuZGxlKSB7CisgICAgYWNjZXNzSGFuZGxlLmdldFNpemUoKS50aGVuKChyZXN1bHQp
ID0+IHsKKyAgICAgICAgc2l6ZSA9IHJlc3VsdDsKKyAgICAgICAgc2hvdWxkQmUoInNpemUiLCAi
MCIpOworICAgICAgICBjcmVhdGVTZWNvbmRTeW5jQWNlc3NIYW5kbGUoZmlsZUhhbmRsZSk7Cisg
ICAgfSkuY2F0Y2goKGVycm9yKSA9PiB7CisgICAgICAgIGZpbmlzaFRlc3QoZXJyb3IpOworICAg
IH0pOworfQorCitmdW5jdGlvbiBjcmVhdGVTZWNvbmRTeW5jQWNlc3NIYW5kbGUoZnJvbUhhbmRs
ZSkgeworICAgIGZyb21IYW5kbGUuY3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpLnRoZW4oKGhhbmRs
ZSkgPT4geworICAgICAgICBhY2Nlc3NIYW5kbGUyID0gaGFuZGxlOworICAgICAgICAvLyBTZWNv
bmQgY3JlYXRpb24gc2hvdWxkIHN1Y2NlZWQuCisgICAgICAgIGRlYnVnKCJhY2Nlc3NIYW5kbGUy
IGlzIGNyZWF0ZWQiKTsKKyAgICAgICAgZmluaXNoVGVzdCgpOworICAgIH0pLmNhdGNoKChlcnJv
cikgPT4geworICAgICAgICAvLyBGaXJzdCBjcmVhdGlvbiBzaG91bGQgZmFpbCBhcyB0aGVyZSBp
cyBhbiBhY3RpdmUgaGFuZGxlLgorICAgICAgICBjcmVhdGVFcnJvciA9IGVycm9yOworICAgICAg
ICBkZWJ1ZygiYWNjZXNzSGFuZGxlMiBjYW5ub3QgYmUgY3JlYXRlZCIpOworICAgICAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoImNyZWF0ZUVycm9yLnRvU3RyaW5nKCkiLCAiSW52YWxpZFN0YXRl
RXJyb3I6IFRoZSBvYmplY3QgaXMgaW4gYW4gaW52YWxpZCBzdGF0ZS4iKTsKKyAgICAgICAgY2xv
c2UoKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gY2xvc2UoKSB7CisgICAgYWNjZXNzSGFuZGxl
MS5jbG9zZSgpLnRoZW4oKHJlc3VsdCkgPT4geworICAgICAgICBkZWJ1ZygiYWNjZXNzSGFuZGxl
MSBpcyBjbG9zZWQiKTsKKyAgICAgICAgY3JlYXRlU2Vjb25kU3luY0FjZXNzSGFuZGxlKGZpbGVI
YW5kbGUpOworICAgIH0pLmNhdGNoKChlcnJvcikgPT4geworICAgICAgICBmaW5pc2hUZXN0KGVy
cm9yKTsKKyAgICB9KTsKK30KKworZ2V0RGlyZWN0b3J5KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLWJhc2ljcy13
b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNz
L3N5bmMtYWNjZXNzLWhhbmRsZS1iYXNpY3Mtd29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40NzRmNWQ3MTU1NzMwN2U0YmQxNGMxNDZiYTkzYWJkNTJkYjlhNGY0Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhh
bmRsZS1iYXNpY3Mtd29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitbV29ya2Vy
XSBUaGlzIHRlc3QgY2hlY2tzIGJhc2ljIGZ1bnRpb25hbGl0aWVzIG9mIEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworU3RhcnRpbmcg
d29ya2VyOiByZXNvdXJjZXMvc3luYy1hY2Nlc3MtaGFuZGxlLWJhc2ljcy5qcworUEFTUyBbV29y
a2VyXSBmaWxlSGFuZGxlLm5hbWUgaXMgInN5bmMtYWNjZXNzLWhhbmRsZS50eHQiCitQQVNTIFtX
b3JrZXJdIGZpbGVIYW5kbGUua2luZCBpcyAiZmlsZSIKK1tXb3JrZXJdIGFjY2Vzc0hhbmRsZTEg
aXMgY3JlYXRlZAorUEFTUyBbV29ya2VyXSBzaXplIGlzIDAKK1tXb3JrZXJdIGFjY2Vzc0hhbmRs
ZTIgY2Fubm90IGJlIGNyZWF0ZWQKK1BBU1MgW1dvcmtlcl0gY3JlYXRlRXJyb3IudG9TdHJpbmco
KSBpcyAiSW52YWxpZFN0YXRlRXJyb3I6IFRoZSBvYmplY3QgaXMgaW4gYW4gaW52YWxpZCBzdGF0
ZS4iCitbV29ya2VyXSBhY2Nlc3NIYW5kbGUxIGlzIGNsb3NlZAorW1dvcmtlcl0gYWNjZXNzSGFu
ZGxlMiBpcyBjcmVhdGVkCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNj
ZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1iYXNpY3Mtd29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLWJhc2ljcy13b3JrZXIu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43ZmVjMzZhNTk2MGI0YWFhMjFhMmY4MGFkMTFjZWQ0YjdlY2VkOWQ1
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNz
L3N5bmMtYWNjZXNzLWhhbmRsZS1iYXNpY3Mtd29ya2VyLmh0bWwKQEAgLTAsMCArMSw5IEBACis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK3dvcmtlciA9IHN0YXJ0V29ya2Vy
KCdyZXNvdXJjZXMvc3luYy1hY2Nlc3MtaGFuZGxlLWJhc2ljcy5qcycpOzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440280</attachid>
            <date>2021-10-05 15:27:20 -0700</date>
            <delta_ts>2021-10-06 13:03:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231185-20211005152719.patch</filename>
            <type>text/plain</type>
            <size>93392</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGE4NDgwMmU4NjAzYjY5ZDZiNGYwOWI2
NTQyNjY5ZTQzMTU3ZjQ1N2MuLjkzZWVhNWE0YWE5YWQ4NjQ1MzBkZTYyMTI2OTJkY2E0MWY1ZjBk
Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEtMTAtMDUgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzExODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzODQ3ODU5PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNl
cy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sOgorICAgICAgICAqIHd0Zi9GaWxlU3lz
dGVtLmg6CisgICAgICAgICogd3RmL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3BwOgorICAgICAgICAo
V1RGOjpGaWxlU3lzdGVtSW1wbDo6Zmx1c2hGaWxlKToKKyAgICAgICAgKiB3dGYvcG9zaXgvRmls
ZVN5c3RlbVBPU0lYLmNwcDoKKyAgICAgICAgKFdURjo6RmlsZVN5c3RlbUltcGw6OmZsdXNoRmls
ZSk6CisgICAgICAgICogd3RmL3dpbi9GaWxlU3lzdGVtV2luLmNwcDoKKyAgICAgICAgKFdURjo6
RmlsZVN5c3RlbUltcGw6OmZsdXNoRmlsZSk6CisKIDIwMjEtMTAtMDUgIERhdmlkIEtpbHplciAg
PGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBGb2xsb3ctdXAgIzI6IFdURjo6UmV0YWlu
UHRyPD4gYWxsb3dzIGFzc2lnbm1lbnQgb2YgdHdvIHBvaW50ZXIgdHlwZXMgdGhhdCBhcmUgbm90
IGFzc2lnbmFibGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzNDNiMjc2MjZjOGMyY2NiYTY2NzUwMGJhNzgxZmIy
ZGM2MmEwMjVjLi5hNjU4ZjhiN2JhNzAzZGVkN2VlNDFlMGE5MTRhN2I3OTNiMDBhOTZhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNjIgQEAKKzIwMjEtMTAtMDUgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzExODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzODQ3ODU5PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBiYXNpYyBzdXBw
b3J0IGZvciBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSBhcyBwcm9wb3NhbDoKKyAgICAgICAg
aHR0cHM6Ly9naXRodWIuY29tL1dJQ0cvZmlsZS1zeXN0ZW0tYWNjZXNzL2Jsb2IvbWFpbi9BY2Nl
c3NIYW5kbGUubWQKKworICAgICAgICBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSBjYW4gYmUg
Y3JlYXRlZCB2aWEgRmlsZVN5c3RlbUZpbGVIYW5kbGUsIGFuZCBpdCBjb21tdWljYXRlcyB3aXRo
IGJhY2tlbmQgdmlhIAorICAgICAgICBGaWxlU3lzdGVtRmlsZUhhbmRsZS4KKworICAgICAgICBU
ZXN0OiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLWJhc2ljcy13
b3JrZXIuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZl
ZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAq
IEhlYWRlcnMuY21ha2U6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVT
eXN0ZW1GaWxlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFu
ZGxlOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0
ZW1GaWxlSGFuZGxlOjpnZXRTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxl
SGFuZGxlOjp0cnVuY2F0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRs
ZTo6Zmx1c2gpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNsb3Nl
KToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5k
bGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVI
YW5kbGUuaWRsOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKToK
KyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjp+RmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGU6OnRydW5jYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlOjpnZXRTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlOjpmbHVzaCk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZTo6Y2xvc2UpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU6OmRpZENsb3NlKToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbDogQWRkZWQuCisgICAg
ICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
SWRlbnRpZmllci5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6c2NvcGVDbG9zZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpyZW1vdmVFbnRy
eSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246
OmRpZENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjb21wbGV0ZUludGVnZXJDYWxsYmFjayk6CisgICAg
ICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNvbXBsZXRl
Vm9pZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpX
b3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldFNpemUpOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjp0cnVuY2F0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmZsdXNoKToK
KyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y2xv
c2UpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OjpkaWRSZW1vdmVFbnRyeSk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFNv
dXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6CisKIDIwMjEtMTAt
MDUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUkVH
UkVTU0lPTiAocjI4MzMzNSk6IE1vbWVudHVtIHNjcm9sbGluZyBpcyBubyBsb25nZXIgbG9ja2Vk
IHRvIGFuIGF4aXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZjg1ZGYzZjBhZTNiOWYwYzYzYWE3YzkxM2U4MjYyNzJm
YTVmYTNlMy4uYjM0MTgyYWMxZDFlYzMyNzA1YzY3ZmVlMmMzNjY3NDQyMDYxMWU1MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw1NCBAQAorMjAyMS0xMC0wNSAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFw
cGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
MTE4NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODM4NDc4NTk+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VycmVudGx5IHdlIG9ubHkgYWxsb3cg
b25lIG9wZW4gYWNjZXNzIGhhbmRsZSBvbiBvbmUgZmlsZS4gU2Vjb25kIGFjY2VzcyBoYW5kbGUg
Y2FuIGJlIGNyZWF0ZWQgYWZ0ZXIgdGhlIGZpcnN0CisgICAgICAgIGlzIGNsb3NlZC4KKworICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oOgor
ICAgICAgICAoV2ViS2l0Ojpjb252ZXJ0VG9FeGNlcHRpb25Pcik6CisgICAgICAgIChXZWJLaXQ6
OmNvbnZlcnRUb0V4Y2VwdGlvbik6CisgICAgICAgIChXZWJLaXQ6OmNvbnZlcnRUb0V4Y2VwdGlv
bkNvZGUpOiBEZWxldGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFn
ZUhhbmRsZTo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlOjpnZXRTaXplKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3Rl
bVN0b3JhZ2VIYW5kbGU6OnRydW5jYXRlKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGU6OmZsdXNoKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VI
YW5kbGU6OmNsb3NlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxl
U3lzdGVtU3RvcmFnZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3Rv
cmFnZU1hbmFnZXI6OmNvbm5lY3Rpb25DbG9zZWQpOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lz
dGVtU3RvcmFnZU1hbmFnZXI6OmFjcXVpcmVMb2NrRm9yRmlsZSk6CisgICAgICAgIChXZWJLaXQ6
OkZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlcjo6cmVsZWFzZUxvY2tGb3JGaWxlKToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpjcmVhdGVTeW5jQWNjZXNz
SGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpnZXRTaXpl
Rm9yQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2Vy
Ojp0cnVuY2F0ZUZvckFjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTdG9y
YWdlTWFuYWdlcjo6Zmx1c2hGb3JBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrU3RvcmFnZU1hbmFnZXI6OmNsb3NlQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAodHlwZXNfdGhhdF9j
YW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldEZpbGVIYW5kbGUpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldERpcmVjdG9y
eUhhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bjo6cmVtb3ZlRW50cnkpOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OnJlc29sdmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb246OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldFNpemUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnRydW5jYXRlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpmbHVzaCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y2xvc2UpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9yYWdlQ29ubmVj
dGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlN0b3JhZ2VDb25uZWN0aW9uOjpmaWxlU3lz
dGVtR2V0RGlyZWN0b3J5KToKKwogMjAyMS0xMC0wNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgogCiAgICAgICAgIEFkZCBTUEkgdG8gbGF1bmNoIGEgc2VydmljZSBzZXJ2aWNlIHdv
cmtlciBpbiBhIFdLV2ViVmlldyBhbmQgZXhwb3NlIHNlcnZpY2Ugd29ya2VyIHRvIGluamVjdGVk
IGJ1bmRsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlBy
ZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5j
ZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAppbmRleCA1MjVlNjAzNTJmNThlZTRh
NTZlYjQ4ODBjZDA1NDZkOWMwM2Q2ZmFkLi5iMTEyNjQ3NjA0ZmRhOWRhZGY0NDY0OTQ5ZjIxZWVh
Nzk5ZjI1ZTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2Vi
UHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJl
ZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtMjYsNiArMjYsMTgg
QEAKICMgVGhleSBtdXN0IGluY2x1ZGUgYSBodW1hblJlYWRhYmxlTmFtZSBhbmQgaHVtYW5SZWFk
YWJsZURlc2NyaXB0aW9uLiBUaGlzIGlzCiAjICAgdGhlIHRleHQgZXhwb3NlZCB0byB0aGUgdXNl
ciBmcm9tIHRoZSBXZWJLaXQgY2xpZW50LgogCitBY2Nlc3NIYW5kbGVFbmFibGVkOgorICB0eXBl
OiBib29sCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiQWNjZXNzSGFuZGxlIEFQSSIKKyAgaHVtYW5S
ZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIEFjY2Vzc0hhbmRsZSBBUEkiCisgIGRlZmF1bHRW
YWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6CisgICAgICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYktp
dDoKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgV2ViQ29yZToKKyAgICAgIGRlZmF1bHQ6IGZh
bHNlCisKIEFjY2Vzc2liaWxpdHlPYmplY3RNb2RlbEVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAg
aHVtYW5SZWFkYWJsZU5hbWU6ICJBY2Nlc3NpYmlsaXR5IE9iamVjdCBNb2RlbCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uaCBiL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0
ZW0uaAppbmRleCBjNDUwMWQxNGE3NDJhYTIxZmE2ZGM3YTczZjgzMDllYzZhODdmNGQ1Li5iMTA3
MzcwNjk4ZTFhZDFkYTc5NGE3ZTQ2NmNjMDA3MTJhN2Q4NjY3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9GaWxlU3lzdGVtLmgKKysrIGIvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5oCkBA
IC0xNTQsNiArMTU0LDcgQEAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgY2xvc2VGaWxlKFBsYXRm
b3JtRmlsZUhhbmRsZSYpOwogLy8gUmV0dXJucyB0aGUgcmVzdWx0aW5nIG9mZnNldCBmcm9tIHRo
ZSBiZWdpbm5pbmcgb2YgdGhlIGZpbGUgaWYgc3VjY2Vzc2Z1bCwgLTEgb3RoZXJ3aXNlLgogV1RG
X0VYUE9SVF9QUklWQVRFIGxvbmcgbG9uZyBzZWVrRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUsIGxv
bmcgbG9uZyBvZmZzZXQsIEZpbGVTZWVrT3JpZ2luKTsKIFdURl9FWFBPUlRfUFJJVkFURSBib29s
IHRydW5jYXRlRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUsIGxvbmcgbG9uZyBvZmZzZXQpOworV1RG
X0VYUE9SVF9QUklWQVRFIGJvb2wgZmx1c2hGaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSk7CiAvLyBS
ZXR1cm5zIG51bWJlciBvZiBieXRlcyBhY3R1YWxseSByZWFkIGlmIHN1Y2Nlc3NmdWwsIC0xIG90
aGVyd2lzZS4KIFdURl9FWFBPUlRfUFJJVkFURSBpbnQgd3JpdGVUb0ZpbGUoUGxhdGZvcm1GaWxl
SGFuZGxlLCBjb25zdCB2b2lkKiBkYXRhLCBpbnQgbGVuZ3RoKTsKIC8vIFJldHVybnMgbnVtYmVy
IG9mIGJ5dGVzIGFjdHVhbGx5IHdyaXR0ZW4gaWYgc3VjY2Vzc2Z1bCwgLTEgb3RoZXJ3aXNlLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAgYi9Tb3Vy
Y2UvV1RGL3d0Zi9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcAppbmRleCA1NDYyNDRjNzA0MTA4NGNi
NGI0MmU5ZjBhYWViYThhMjYyOTAzZmQzLi5mODEyN2YwYmEwZjQ0ZTQ5ZWYyODU5ZTE1MTgwMDhj
MWIzMDQ4NDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9nbGliL0ZpbGVTeXN0ZW1HbGli
LmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcApAQCAtMjEz
LDYgKzIxMywxMSBAQCBib29sIHRydW5jYXRlRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxl
LCBsb25nIGxvbmcgb2Zmc2V0KQogICAgIHJldHVybiBnX3NlZWthYmxlX3RydW5jYXRlKEdfU0VF
S0FCTEUoZ19pb19zdHJlYW1fZ2V0X291dHB1dF9zdHJlYW0oR19JT19TVFJFQU0oaGFuZGxlKSkp
LCBvZmZzZXQsIG51bGxwdHIsIG51bGxwdHIpOwogfQogCitib29sIGZsdXNoRmlsZShQbGF0Zm9y
bUZpbGVIYW5kbGUgaGFuZGxlKQoreworICAgIHJldHVybiBnX291dHB1dF9zdHJlYW1fZmx1c2go
Z19pb19zdHJlYW1fZ2V0X291dHB1dF9zdHJlYW0oR19JT19TVFJFQU0oaGFuZGxlKSksIG51bGxw
dHIsIG51bGxwdHIpOworfQorCiBpbnQgd3JpdGVUb0ZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhh
bmRsZSwgY29uc3Qgdm9pZCogZGF0YSwgaW50IGxlbmd0aCkKIHsKICAgICBpZiAoIWxlbmd0aCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHAgYi9T
b3VyY2UvV1RGL3d0Zi9wb3NpeC9GaWxlU3lzdGVtUE9TSVguY3BwCmluZGV4IGIxMzM4MjRlYzJh
MTE1ZWE1MGM3YzM0ZTBmMWE1ZWNlODA0MDJkNGMuLjc5NTY3MGZkNmQ4MDI3OGRmNmMxNzBiMjE2
MmM0OGI1MmU5Y2JiZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3Bvc2l4L0ZpbGVTeXN0
ZW1QT1NJWC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvcG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNw
cApAQCAtMTE4LDYgKzExOCwxMSBAQCBib29sIHRydW5jYXRlRmlsZShQbGF0Zm9ybUZpbGVIYW5k
bGUgaGFuZGxlLCBsb25nIGxvbmcgb2Zmc2V0KQogICAgIHJldHVybiAhZnRydW5jYXRlKGhhbmRs
ZSwgb2Zmc2V0KTsKIH0KIAorYm9vbCBmbHVzaEZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRs
ZSkKK3sKKyAgICByZXR1cm4gIWZzeW5jKGhhbmRsZSk7Cit9CisKIGludCB3cml0ZVRvRmlsZShQ
bGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlLCBjb25zdCB2b2lkKiBkYXRhLCBpbnQgbGVuZ3RoKQog
ewogICAgIGRvIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3dpbi9GaWxlU3lzdGVtV2lu
LmNwcCBiL1NvdXJjZS9XVEYvd3RmL3dpbi9GaWxlU3lzdGVtV2luLmNwcAppbmRleCBmZmE2Mjkz
YzczZTg0ZWVlMGJjZTEyY2M0ZDBkYTdjZGNhNjBiODkzLi4yYmM4ZjIwMTA1MWM3ZDg1YjE3YjQ0
YWMyNzM4ZDJlZDAxZjJkOTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi93aW4vRmlsZVN5
c3RlbVdpbi5jcHAKKysrIGIvU291cmNlL1dURi93dGYvd2luL0ZpbGVTeXN0ZW1XaW4uY3BwCkBA
IC0zMDMsNiArMzAzLDEyIEBAIGJvb2wgdHJ1bmNhdGVGaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSBo
YW5kbGUsIGxvbmcgbG9uZyBvZmZzZXQpCiAgICAgcmV0dXJuIFNldEZpbGVJbmZvcm1hdGlvbkJ5
SGFuZGxlKGhhbmRsZSwgRmlsZUVuZE9mRmlsZUluZm8sICZlb2ZJbmZvLCBzaXplb2YoRklMRV9F
TkRfT0ZfRklMRV9JTkZPKSk7CiB9CiAKK2Jvb2wgZmx1c2hGaWxlKFBsYXRmb3JtRmlsZUhhbmRs
ZSBoYW5kbGUpCit7CisgICAgLy8gTm90IGltcGxlbWVudGVkLgorICAgIHJldHVybiBmYWxzZTsK
K30KKwogaW50IHdyaXRlVG9GaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUsIGNvbnN0IHZv
aWQqIGRhdGEsIGludCBsZW5ndGgpCiB7CiAgICAgaWYgKCFpc0hhbmRsZVZhbGlkKGhhbmRsZSkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDMwMzk0NzU5NzFkNGZiN2Y2ZjliZDFhMDZiOGZmMjZj
YzUwMTdjYmQuLmRmODFlYjZhNzFjY2M4NmNlMWJjOTljNjFhNWEzYmI2ZmJkMzQ0OGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CkBAIC0yOTcsNiArMjk3LDcgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19J
RExfRklMRVMKICAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9y
eUhhbmRsZS5pZGwKICAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVI
YW5kbGUuaWRsCiAgICAgTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUu
aWRsCisgICAgTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlLmlkbAogICAgIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9TdG9yYWdlTWFuYWdlcitGaWxl
U3lzdGVtQWNjZXNzLmlkbAogCiAgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5p
ZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0Cmlu
ZGV4IGMwYmU4NmE3MzU0NDIyZjFmYmRhMGVhMGM2YWQzNDEzOTliZWM5MmUuLmUyZTg5NjE5MjNj
MGM5OTZiM2ZkMDgxNGNjNTAyM2I5MmY2MmY0ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTI2LDYgKzEyNiw3IEBAICQoUFJPSkVD
VF9ESVIpL01vZHVsZXMvZmV0Y2gvV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZStGZXRjaC5pZGwK
ICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0
b3J5SGFuZGxlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1GaWxlSGFuZGxlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRsCiAkKFBST0pFQ1RfRElS
KS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvU3RvcmFnZU1hbmFnZXIrRmlsZVN5c3RlbUFjY2Vz
cy5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkLmlkbAogJChQUk9K
RUNUX0RJUikvTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRCdXR0b24uaWRsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDIxMTEyY2UxNjQ3
ZGQ1ZDRjNmFmNjU5MThiZmIzNDJhNGRjYmNlYmIuLmY0ZjQ4MjI4YmRjNDYyMzAxN2ZkNDQ5ZDEy
NjQxNjQ4MGVlN2ZiYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
LW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91
dHB1dC54Y2ZpbGVsaXN0CkBAIC05MDcsNiArOTA3LDggQEAgJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNGaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRmlsZVN5c3RlbUZpbGVI
YW5kbGUuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNG
aWxlU3lzdGVtSGFuZGxlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNGaWxlU3lzdGVtSGFuZGxlLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwCiskKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0ZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTRmlsbE1vZGUuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0ZpbGxNb2RlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTRm9jdXNFdmVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmlu
ZGV4IDkyZDNjNDcxOTYwYmNjNzJlODkyOTA2M2VhZjViNTdkOTc0M2JlNTQuLmJlOGFjMjcyNDk4
ZGQyNGU2OGI2OWQ5YmQ0MjU3MDQ1NWQ5OWNlNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZQpAQCAtMTU1LDYgKzE1NSw3IEBAIEpTX0JJTkRJTkdfSURMUyA6PSBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5p
ZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1G
aWxlSGFuZGxlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbUhhbmRsZS5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvU3RvcmFnZU1hbmFnZXIrRmlsZVN5c3RlbUFjY2Vzcy5pZGwg
XAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWQuaWRsIFwKICAgICAkKFdl
YkNvcmUpL01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkQnV0dG9uLmlkbCBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZQppbmRleCAzOTRjYjNiYjZlMWEzMjcyNDk1MWIyMjY1N2VkOTU5OWZkMzc4ZjgyLi5mZjg3OGZi
NWQzMjk4ZjUzZThiNzA2ZjhjN2E1ODZkYTlmY2NhODgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAg
LTQyLDYgKzQyLDggQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAg
IE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmgKICAgICBNb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaAogICAgIE1vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAorICAgIE1v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oCisgICAg
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRp
Zmllci5oCiAgICAgTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1N0b3JhZ2VNYW5hZ2VyRmlsZVN5
c3RlbUFjY2Vzcy5oCiAgICAgTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCiAgICAgTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtl
ckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbkNhbGxiYWNrSWRlbnRpZmllci5oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZp
bGVIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1GaWxlSGFuZGxlLmNwcAppbmRleCBiMjEyNTQ3YjVmZTliOWJkMjU2N2ZiMWIwOTQ4
MGJiZGQwZjE5ZjY3Li5hNjlhNzJjNmI2OGEyZDZjZDQ1YzhmYjczNDRiYTQzYjU4NzMzMTY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbUZpbGVIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKQEAgLTI3LDcgKzI3LDkgQEAKICNpbmNs
dWRlICJGaWxlU3lzdGVtRmlsZUhhbmRsZS5oIgogCiAjaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaCIK
ICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgIkpTRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGUuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00OSw1ICs1MSw0MSBAQCB2b2lkIEZpbGVTeXN0ZW1G
aWxlSGFuZGxlOjpnZXRGaWxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZT4+
JiYgcHJvbQogICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9y
LCAiTm90IGltcGxlbWVudGVkIl9zIH0pOwogfQogCit2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxl
OjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+PiYmIHByb21pc2UpCit7CisgICAgY29ubmVjdGlv
bigpLmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoaWRlbnRpZmllcigpLCBbcHJvdGVjdGVkVGhpcyA9
IFJlZiB7ICp0aGlzIH0sIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkg
bXV0YWJsZSB7CisgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCisgICAgICAgICAg
ICByZXR1cm4gcHJvbWlzZS5yZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CisKKyAg
ICAgICAgcHJvbWlzZS5zZXR0bGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZShw
cm90ZWN0ZWRUaGlzLmdldCgpLCByZXN1bHQucmV0dXJuVmFsdWUoKSkpOworICAgIH0pOworfQor
Cit2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpnZXRTaXplKEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBET01Qcm9taXNlRGVmZXJy
ZWQ8SURMVW5zaWduZWRMb25nTG9uZz4mJiBwcm9taXNlKQoreworICAgIGNvbm5lY3Rpb24oKS5n
ZXRTaXplKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgW3Byb21pc2UgPSBX
VEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIHByb21pc2Uu
c2V0dGxlKFdURk1vdmUocmVzdWx0KSk7CisgICAgfSk7Cit9CisKK3ZvaWQgRmlsZVN5c3RlbUZp
bGVIYW5kbGU6OnRydW5jYXRlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBh
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSwgRE9NUHJvbWlz
ZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3sKKyAgICBjb25uZWN0aW9uKCkudHJ1bmNhdGUo
aWRlbnRpZmllcigpLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBzaXplLCBbcHJvbWlzZSA9IFdU
Rk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgcHJvbWlzZS5z
ZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKKyAgICB9KTsKK30KKwordm9pZCBGaWxlU3lzdGVtRmls
ZUhhbmRsZTo6Zmx1c2goRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vz
c0hhbmRsZUlkZW50aWZpZXIsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCit7
CisgICAgY29ubmVjdGlvbigpLmZsdXNoKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRp
ZmllciwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7
CisgICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7CisgICAgfSk7Cit9CisK
K3ZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNsb3NlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGNv
bm5lY3Rpb24oKS5jbG9zZShpZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbUZpbGVIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCmluZGV4IDI1MDA1YzIxMzM4YmU3ODZhOTlmMjBi
OGZhYWRlM2MxMmE3YWRjZDUuLmFmY2VhMWY3MDEzNzkwOGZlMWM3NDBlMWZmZWViMWRlNzgxNDQx
NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9G
aWxlU3lzdGVtRmlsZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCkBAIC0yNiwxMCArMjYsMTMgQEAKICNw
cmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRmlsZVN5c3RlbUhhbmRsZS5oIgorI2luY2x1ZGUgIkZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIEZpbGU7CitjbGFzcyBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTsKK3Rl
bXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKIAogY2xhc3MgRmlsZVN5c3RlbUZp
bGVIYW5kbGUgZmluYWwgOiBwdWJsaWMgRmlsZVN5c3RlbUhhbmRsZSB7CiAgICAgV1RGX01BS0Vf
SVNPX0FMTE9DQVRFRChGaWxlU3lzdGVtRmlsZUhhbmRsZSk7CkBAIC0zNyw2ICs0MCwxMiBAQCBw
dWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxGaWxlU3lzdGVtRmlsZUhhbmRs
ZT4gY3JlYXRlKFN0cmluZyYmLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgUmVmPEZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJik7CiAgICAgdm9pZCBnZXRGaWxlKERPTVByb21pc2VE
ZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZT4+JiYpOwogCisgICAgdm9pZCBjcmVhdGVTeW5jQWNj
ZXNzSGFuZGxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGU+PiYmKTsKKyAgICB2b2lkIGdldFNpemUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGVJZGVudGlmaWVyLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMVW5zaWduZWRMb25nTG9uZz4m
Jik7CisgICAgdm9pZCB0cnVuY2F0ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIsIHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7
CisgICAgdm9pZCBmbHVzaChGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIERP
TVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKyAgICB2b2lkIGNsb3NlKEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25P
cjx2b2lkPiYmKT4mJik7CisKIHByaXZhdGU6CiAgICAgRmlsZVN5c3RlbUZpbGVIYW5kbGUoU3Ry
aW5nJiYsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uPiYmKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaWRsIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmlkbAppbmRleCA5
ZTZhYTg4NTZlZDk3YjZjYmE0NjM4NTA1YWZhYTFlNTVhNmQ5NWY1Li5iYzFjZWUyZTFjNDNiNDNk
NzdhMTFkOWI0ZjZmYTBmZTE5ZmQ3MTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5p
ZGwKQEAgLTIzLDExICsyMywxMyBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgogICovCiAKKy8vIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vZmlsZS1zeXN0ZW0tYWNjZXNzLyNh
cGktZmlsZXN5c3RlbWhhbmRsZQorCiBbCiAgICAgRW5hYmxlZEJ5U2V0dGluZz1GaWxlU3lzdGVt
QWNjZXNzRW5hYmxlZCwKICAgICBFeHBvc2VkPShXaW5kb3csV29ya2VyKSwKICAgICBTZWN1cmVD
b250ZXh0CiBdIGludGVyZmFjZSBGaWxlU3lzdGVtRmlsZUhhbmRsZSA6IEZpbGVTeXN0ZW1IYW5k
bGUgewogICAgIFByb21pc2U8RmlsZT4gZ2V0RmlsZSgpOwotICAgIC8vIEZJWE1FOiBhZGQgUHJv
bWlzZTxGaWxlU3lzdGVtV3JpdGFibGVGaWxlU3RyZWFtPiBjcmVhdGVXcml0YWJsZShvcHRpb25h
bCBGaWxlU3lzdGVtQ3JlYXRlV3JpdGFibGVPcHRpb25zIG9wdGlvbnMpOworICAgIFtFbmFibGVk
QnlTZXR0aW5nPUFjY2Vzc0hhbmRsZUVuYWJsZWQsIEV4cG9zZWQ9V29ya2VyXSBQcm9taXNlPEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPiBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKCk7CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IGU2MDVhNjdkOTJh
YjQzNmZkNjQ4M2UzNzhiNmY2MzhiNGQ4MWFhMGQuLjRjMGYzYjAwZmEyZGNmODY2ODUzYWViNjE0
MGVjNjRhMzczNWRhNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNs
dWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KIApAQCAtMzgsMTUgKzM5LDI0IEBAIHRl
bXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKIGNsYXNzIEZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24+IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5GaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24oKSB7IH0KKwogICAgIHVzaW5nIFNhbWVFbnRyeUNhbGxiYWNrID0gQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjxib29sPiYmKT47CiAgICAgdXNpbmcgR2V0SGFu
ZGxlQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPEZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyPiYmKT47Ci0gICAgdXNpbmcgUmVtb3ZlRW50cnlDYWxsYmFjayA9
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+OwogICAgIHVzaW5n
IFJlc29sdmVDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8VmVj
dG9yPFN0cmluZz4+JiYpPjsKKyAgICB1c2luZyBHZXRBY2Nlc3NIYW5kbGVDYWxsYmFjayA9IENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyPiYmKT47CisgICAgdXNpbmcgVm9pZENhbGxiYWNrID0gQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT47CisgICAgdXNpbmcgSW50ZWdlckNhbGxi
YWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx1aW50NjRfdD4mJik+Owor
CiAgICAgdmlydHVhbCB2b2lkIGlzU2FtZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
LCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgU2FtZUVudHJ5Q2FsbGJhY2smJikgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBnZXRGaWxlSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIEdldEhhbmRsZUNh
bGxiYWNrJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0RGlyZWN0b3J5SGFuZGxlKEZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZO
ZWNlc3NhcnksIEdldEhhbmRsZUNhbGxiYWNrJiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcmVt
b3ZlRW50cnkoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwg
Ym9vbCBkZWxldGVSZWN1cnNpdmVseSwgUmVtb3ZlRW50cnlDYWxsYmFjayYmKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIHJlbW92ZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHksIFZvaWRDYWxsYmFjayYmKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlc29sdmUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIs
IEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZXNvbHZlQ2FsbGJhY2smJikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyLCBHZXRBY2Nlc3NIYW5kbGVDYWxsYmFjayYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGdldFNpemUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlSWRlbnRpZmllciwgSW50ZWdlckNhbGxiYWNrJiYpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgdHJ1bmNhdGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSwgVm9pZENhbGxiYWNrJiYpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgZmx1c2goRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgVm9pZENhbGxiYWNrJiYpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgY2xvc2UoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgVm9pZENhbGxiYWNrJiYpID0gMDsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZhZDRiOWE4NGI4NDlkNWJjZTQ3YzM0YTNmMGI2ZDYxZGU3
NmQyYWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwCkBAIC0wLDAgKzEsODcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGUuaCIKKworI2luY2x1ZGUgIkJ1ZmZlclNvdXJjZS5oIgorI2luY2x1ZGUg
IkV4Y2VwdGlvbk9yLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbUZpbGVIYW5kbGUuaCIKKyNpbmNs
dWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFu
ZGxlci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZjxGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZT4gRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZShGaWxlU3lzdGVtRmls
ZUhhbmRsZSYgc291cmNlLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRl
bnRpZmllcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZShzb3VyY2UsIGlkZW50aWZpZXIpKTsKK30KKworRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiBz
b3VyY2UsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQor
ICAgIDogbV9zb3VyY2Uoc291cmNlKQorICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCit7
Cit9CisKK0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjp+RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGUoKQoreworICAgIGlmICghbV9pc0Nsb3NlZCkKKyAgICAgICAgbV9zb3VyY2UtPmNsb3Nl
KG1faWRlbnRpZmllciwgW10oYXV0bykgeyB9KTsKK30KKwordm9pZCBGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZTo6dHJ1bmNhdGUodW5zaWduZWQgbG9uZyBsb25nIHNpemUsIERPTVByb21pc2VE
ZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCit7CisgICAgbV9zb3VyY2UtPnRydW5jYXRlKG1faWRl
bnRpZmllciwgc2l6ZSwgV1RGTW92ZShwcm9taXNlKSk7Cit9CisKK3ZvaWQgRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGU6OmdldFNpemUoRE9NUHJvbWlzZURlZmVycmVkPElETFVuc2lnbmVkTG9u
Z0xvbmc+JiYgcHJvbWlzZSkKK3sKKyAgICBtX3NvdXJjZS0+Z2V0U2l6ZShtX2lkZW50aWZpZXIs
IFdURk1vdmUocHJvbWlzZSkpOworfQorCit2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
OjpmbHVzaChET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQoreworICAgIG1fc291
cmNlLT5mbHVzaChtX2lkZW50aWZpZXIsIFdURk1vdmUocHJvbWlzZSkpOworfQorCit2b2lkIEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZShET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4m
JiBwcm9taXNlKQoreworICAgIGlmIChtX2lzQ2xvc2VkKQorICAgICAgICByZXR1cm4gcHJvbWlz
ZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CisKKyAgICBtX3NvdXJj
ZS0+Y2xvc2UobV9pZGVudGlmaWVyLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHBy
b21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAg
IGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAgIHdlYWtUaGlzLT5kaWRDbG9zZSgpOworCisgICAg
ICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7CisgICAgfSk7Cit9CisKK3ZvaWQg
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmRpZENsb3NlKCkKK3sKKyAgICBtX2lzQ2xvc2Vk
ID0gdHJ1ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOWU0MTU3YjY1NDFiOTNlNmVhNWZlMDIz
N2YwY2YyMTVkMDNjM2JmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKQEAgLTAsMCAr
MSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiSURMVHlwZXMuaCIKKyNp
bmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZp
bGVTeXN0ZW1GaWxlSGFuZGxlOwordGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIERPTVByb21pc2VE
ZWZlcnJlZDsKKworY2xhc3MgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUgOiBwdWJsaWMgUmVm
Q291bnRlZDxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0
cjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4geworcHVibGljOgorICAgIHN0cnVjdCBGaWxl
c3lzdGVtUmVhZFdyaXRlT3B0aW9ucyB7CisgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBhdDsK
KyAgICB9OworCisgICAgc3RhdGljIFJlZjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4gY3Jl
YXRlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyKTsKKyAgICB+RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoKTsKKworICAgIHZvaWQg
dHJ1bmNhdGUodW5zaWduZWQgbG9uZyBsb25nIHNpemUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lk
PiYmKTsKKyAgICB2b2lkIGdldFNpemUoRE9NUHJvbWlzZURlZmVycmVkPElETFVuc2lnbmVkTG9u
Z0xvbmc+JiYpOworICAgIHZvaWQgZmx1c2goRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwor
ICAgIHZvaWQgY2xvc2UoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOworICAgIHZvaWQgZGlk
Q2xvc2UoKTsKKworcHJpdmF0ZToKKyAgICBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZShGaWxl
U3lzdGVtRmlsZUhhbmRsZSYsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcik7
CisKKyAgICBSZWY8RmlsZVN5c3RlbUZpbGVIYW5kbGU+IG1fc291cmNlOworICAgIEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CisgICAgYm9vbCBtX2lz
Q2xvc2VkIHsgZmFsc2UgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjExMjA2NGE2ZGY2
MTFjNDEyMWUyNWM3MTAyZjAzMzAzY2U0NDk0YWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGUuaWRsCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEJ5U2V0
dGluZz1BY2Nlc3NIYW5kbGVFbmFibGVkLAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUs
CisgICAgRXhwb3NlZD1EZWRpY2F0ZWRXb3JrZXIsCisgICAgU2VjdXJlQ29udGV4dAorXSBpbnRl
cmZhY2UgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUgeworICAgIFByb21pc2U8dW5kZWZpbmVk
PiB0cnVuY2F0ZShbRW5mb3JjZVJhbmdlXSB1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSk7CisgICAg
UHJvbWlzZTx1bnNpZ25lZCBsb25nIGxvbmc+IGdldFNpemUoKTsKKyAgICBQcm9taXNlPHVuZGVm
aW5lZD4gZmx1c2goKTsKKyAgICBQcm9taXNlPHVuZGVmaW5lZD4gY2xvc2UoKTsKK307CisKK2Rp
Y3Rpb25hcnkgRmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMgeworICAgIFtFbmZvcmNlUmFuZ2Vd
IHVuc2lnbmVkIGxvbmcgbG9uZyBhdDsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzEzNTFiZjJkOTRlNWYz
YTdlNjFjNjk5Y2FiODI3YTE3OGI2MTc1ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIuaApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2VudW0gRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyVHlwZSB7IH07Cit1
c2luZyBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgPSBPYmplY3RJZGVudGlm
aWVyPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllclR5cGU+OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggNDVlYjNlYzk1Yjc2NTFlN2MxNWUzMGE2OTljNDc0YjY1
NTJkNDNjZC4uZmE3ZjY2OTM1NzE2MGI3OTFkYzI1YTFhMzIwODNkYTI2OTg1NjZiNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAg
LTY0LDcgKzY0LDcgQEAgdm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnNj
b3BlQ2xvc2VkKCkKICAgICBmb3IgKGF1dG8mIGNhbGxiYWNrIDogZ2V0SGFuZGxlQ2FsbGJhY2tz
LnZhbHVlcygpKQogICAgICAgICBjYWxsYmFjayhFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJv
ciB9KTsKIAotICAgIGF1dG8gcmVtb3ZlRW50cnlDYWxsYmFja3MgPSBzdGQ6OmV4Y2hhbmdlKG1f
cmVtb3ZlRW50cnlDYWxsYmFja3MsIHsgfSk7CisgICAgYXV0byByZW1vdmVFbnRyeUNhbGxiYWNr
cyA9IHN0ZDo6ZXhjaGFuZ2UobV92b2lkQ2FsbGJhY2tzLCB7IH0pOwogICAgIGZvciAoYXV0byYg
Y2FsbGJhY2sgOiByZW1vdmVFbnRyeUNhbGxiYWNrcy52YWx1ZXMoKSkKICAgICAgICAgY2FsbGJh
Y2soRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CiAKQEAgLTE0NywxOSArMTQ3LDE5
IEBAIHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpkaWRHZXRIYW5kbGUo
Q2FsbGJhY2tJZGVudGlmaWVyIGNhbGxiYWNrCiAgICAgICAgIGNhbGxiYWNrKFdURk1vdmUocmVz
dWx0KSk7CiB9CiAKLXZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpyZW1v
dmVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHksIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbjo6UmVtb3ZlRW50cnlDYWxsYmFjayYmIGNhbGxiYWNrKQordm9pZCBXb3JrZXJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb246OnJlbW92ZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVs
eSwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJiBjYWxsYmFjaykK
IHsKICAgICBpZiAoIW1fc2NvcGUpCiAgICAgICAgIHJldHVybiBjYWxsYmFjayhFeGNlcHRpb24g
eyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKIAogICAgIGF1dG8gY2FsbGJhY2tJZGVudGlmaWVyID0g
Q2FsbGJhY2tJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUoKTsKLSAgICBtX3JlbW92ZUVu
dHJ5Q2FsbGJhY2tzLmFkZChjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUoY2FsbGJhY2spKTsK
KyAgICBtX3ZvaWRDYWxsYmFja3MuYWRkKGNhbGxiYWNrSWRlbnRpZmllciwgV1RGTW92ZShjYWxs
YmFjaykpOwogCiAgICAgY2FsbE9uTWFpblRocmVhZChbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3Jr
ZXJUaHJlYWQgPSBSZWYgeyBtX3Njb3BlLT50aHJlYWQoKSB9LCBtYWluVGhyZWFkQ29ubmVjdGlv
biA9IG1fbWFpblRocmVhZENvbm5lY3Rpb24sIGlkZW50aWZpZXIsIG5hbWUgPSBuYW1lLmlzb2xh
dGVkQ29weSgpLCBkZWxldGVSZWN1cnNpdmVseV0oKSBtdXRhYmxlIHsKICAgICAgICAgYXV0byBt
YWluVGhyZWFkQ2FsbGJhY2sgPSBbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQgPSBX
VEZNb3ZlKHdvcmtlclRocmVhZCldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgICAg
IHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbY2FsbGJhY2tJZGVudGlm
aWVyLCByZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0KV0gKGF1dG8mIHNjb3BlKSBtdXRh
YmxlIHsKICAgICAgICAgICAgICAgICBpZiAoYXV0byBjb25uZWN0aW9uID0gZG93bmNhc3Q8V29y
a2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5maWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oKSkKLSAg
ICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+ZGlkUmVtb3ZlRW50cnkoY2FsbGJhY2tJZGVu
dGlmaWVyLCBXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9u
LT5jb21wbGV0ZVZvaWRDYWxsYmFjayhjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUocmVzdWx0
KSk7CiAgICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKICAgICAg
ICAgfTsKIApAQCAtMTY3LDEyICsxNjcsNiBAQCB2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbjo6cmVtb3ZlRW50cnkoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaQogICAg
IH0pOwogfQogCi12b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6ZGlkUmVt
b3ZlRW50cnkoQ2FsbGJhY2tJZGVudGlmaWVyIGNhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9u
T3I8dm9pZD4mJiByZXN1bHQpCi17Ci0gICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX3JlbW92ZUVu
dHJ5Q2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJZGVudGlmaWVyKSkKLSAgICAgICAgY2FsbGJhY2so
V1RGTW92ZShyZXN1bHQpKTsKLX0KLQogdm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb246OnJlc29sdmUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgRmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgb3RoZXJJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb246OlJlc29sdmVDYWxsYmFjayYmIGNhbGxiYWNrKQogewogICAgIGlmICghbV9z
Y29wZSkKQEAgLTE5OSw0ICsxOTMsMTIyIEBAIHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOjpkaWRSZXNvbHZlKENhbGxiYWNrSWRlbnRpZmllciBjYWxsYmFja0lkCiAgICAg
ICAgIGNhbGxiYWNrKFdURk1vdmUocmVzdWx0KSk7CiB9CiAKK3ZvaWQgV29ya2VyRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uOjpkaWRDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKENhbGxiYWNrSWRl
bnRpZmllciBjYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlSWRlbnRpZmllcj4mJiByZXN1bHQpCit7CisgICAgaWYgKGF1dG8gY2FsbGJhY2sg
PSBtX2dldEFjY2Vzc0hhbmRsQ2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJZGVudGlmaWVyKSkKKyAg
ICAgICAgY2FsbGJhY2soV1RGTW92ZShyZXN1bHQpKTsKK30KKwordm9pZCBXb3JrZXJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb246OmNvbXBsZXRlSW50ZWdlckNhbGxiYWNrKENhbGxiYWNrSWRl
bnRpZmllciBjYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPHVpbnQ2NF90PiYmIHJlc3Vs
dCkKK3sKKyAgICBpZiAoYXV0byBjYWxsYmFjayA9IG1faW50ZWdlckNhbGxiYWNrcy50YWtlKGNh
bGxiYWNrSWRlbnRpZmllcikpCisgICAgICAgIGNhbGxiYWNrKFdURk1vdmUocmVzdWx0KSk7Cit9
CisKK3ZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjb21wbGV0ZVZvaWRD
YWxsYmFjayhDYWxsYmFja0lkZW50aWZpZXIgY2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25P
cjx2b2lkPiYmIHJlc3VsdCkKK3sKKyAgICBpZiAoYXV0byBjYWxsYmFjayA9IG1fdm9pZENhbGxi
YWNrcy50YWtlKGNhbGxiYWNrSWRlbnRpZmllcikpCisgICAgICAgIGNhbGxiYWNrKFdURk1vdmUo
cmVzdWx0KSk7Cit9CisKK3ZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpj
cmVhdGVTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0QWNjZXNzSGFuZGxlQ2FsbGJhY2sm
JiBjYWxsYmFjaykKK3sKKyAgICBpZiAoIW1fc2NvcGUpCisgICAgICAgIHJldHVybiBjYWxsYmFj
ayhFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKworICAgIGF1dG8gY2FsbGJhY2tJ
ZGVudGlmaWVyID0gQ2FsbGJhY2tJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUoKTsKKyAg
ICBtX2dldEFjY2Vzc0hhbmRsQ2FsbGJhY2tzLmFkZChjYWxsYmFja0lkZW50aWZpZXIsIFdURk1v
dmUoY2FsbGJhY2spKTsKKworICAgIGNhbGxPbk1haW5UaHJlYWQoW2NhbGxiYWNrSWRlbnRpZmll
ciwgd29ya2VyVGhyZWFkID0gUmVmIHsgbV9zY29wZS0+dGhyZWFkKCkgfSwgbWFpblRocmVhZENv
bm5lY3Rpb24gPSBtX21haW5UaHJlYWRDb25uZWN0aW9uLCBpZGVudGlmaWVyXSgpIG11dGFibGUg
eworICAgICAgICBhdXRvIG1haW5UaHJlYWRDYWxsYmFjayA9IFtjYWxsYmFja0lkZW50aWZpZXIs
IHdvcmtlclRocmVhZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKV0oYXV0byByZXN1bHQpIG11dGFi
bGUgeworICAgICAgICAgICAgd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2Rl
KFtjYWxsYmFja0lkZW50aWZpZXIsIHJlc3VsdCA9IGNyb3NzVGhyZWFkQ29weShyZXN1bHQpXSAo
YXV0byYgc2NvcGUpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGlmIChhdXRvIGNvbm5lY3Rp
b24gPSBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oc2NvcGUpLmZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbigpKQorICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLT5kaWRDcmVhdGVT
eW5jQWNjZXNzSGFuZGxlKGNhbGxiYWNrSWRlbnRpZmllciwgV1RGTW92ZShyZXN1bHQpKTsKKyAg
ICAgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOworICAgICAgICB9Owor
CisgICAgICAgIG1haW5UaHJlYWRDb25uZWN0aW9uLT5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlKGlk
ZW50aWZpZXIsIFdURk1vdmUobWFpblRocmVhZENhbGxiYWNrKSk7CisgICAgfSk7Cit9CisKK3Zv
aWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpnZXRTaXplKEZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRl
bnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b246OkludGVnZXJDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIGlmICghbV9zY29wZSkKKyAg
ICAgICAgcmV0dXJuIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOwor
CisgICAgYXV0byBjYWxsYmFja0lkZW50aWZpZXIgPSBDYWxsYmFja0lkZW50aWZpZXI6OmdlbmVy
YXRlVGhyZWFkU2FmZSgpOworICAgIG1faW50ZWdlckNhbGxiYWNrcy5hZGQoY2FsbGJhY2tJZGVu
dGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisKKyAgICBjYWxsT25NYWluVGhyZWFkKFtjYWxs
YmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFJlZiB7IG1fc2NvcGUtPnRocmVhZCgpIH0s
IG1haW5UaHJlYWRDb25uZWN0aW9uID0gbV9tYWluVGhyZWFkQ29ubmVjdGlvbiwgaWRlbnRpZmll
ciwgYWNjZXNzSGFuZGxlSWRlbnRpZmllcl0oKSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byBtYWlu
VGhyZWFkQ2FsbGJhY2sgPSBbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQgPSBXVEZN
b3ZlKHdvcmtlclRocmVhZCldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgICAgIHdv
cmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbY2FsbGJhY2tJZGVudGlmaWVy
LCByZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0KV0gKGF1dG8mIHNjb3BlKSBtdXRhYmxl
IHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBjb25uZWN0aW9uID0gZG93bmNhc3Q8V29ya2Vy
R2xvYmFsU2NvcGU+KHNjb3BlKS5maWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oKSkKKyAgICAg
ICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+Y29tcGxldGVJbnRlZ2VyQ2FsbGJhY2soY2FsbGJh
Y2tJZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAgICAgfSwgV29ya2VyUnVu
TG9vcDo6ZGVmYXVsdE1vZGUoKSk7CisgICAgICAgIH07CisKKyAgICAgICAgbWFpblRocmVhZENv
bm5lY3Rpb24tPmdldFNpemUoaWRlbnRpZmllciwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV1RG
TW92ZShtYWluVGhyZWFkQ2FsbGJhY2spKTsKKyAgICB9KTsKK30KKwordm9pZCBXb3JrZXJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnRydW5jYXRlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyIGlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nl
c3NIYW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXplLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb246OlZvaWRDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIGlmICghbV9zY29wZSkKKyAg
ICAgICAgcmV0dXJuIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOwor
CisgICAgYXV0byBjYWxsYmFja0lkZW50aWZpZXIgPSBDYWxsYmFja0lkZW50aWZpZXI6OmdlbmVy
YXRlVGhyZWFkU2FmZSgpOworICAgIG1fdm9pZENhbGxiYWNrcy5hZGQoY2FsbGJhY2tJZGVudGlm
aWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisKKyAgICBjYWxsT25NYWluVGhyZWFkKFtjYWxsYmFj
a0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFJlZiB7IG1fc2NvcGUtPnRocmVhZCgpIH0sIG1h
aW5UaHJlYWRDb25uZWN0aW9uID0gbV9tYWluVGhyZWFkQ29ubmVjdGlvbiwgaWRlbnRpZmllciwg
YWNjZXNzSGFuZGxlSWRlbnRpZmllciwgc2l6ZV0oKSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byBt
YWluVGhyZWFkQ2FsbGJhY2sgPSBbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQgPSBX
VEZNb3ZlKHdvcmtlclRocmVhZCldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgICAg
IHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbY2FsbGJhY2tJZGVudGlm
aWVyLCByZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0KV0gKGF1dG8mIHNjb3BlKSBtdXRh
YmxlIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBjb25uZWN0aW9uID0gZG93bmNhc3Q8V29y
a2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5maWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oKSkKKyAg
ICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+Y29tcGxldGVWb2lkQ2FsbGJhY2soY2FsbGJh
Y2tJZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAgICAgfSwgV29ya2VyUnVu
TG9vcDo6ZGVmYXVsdE1vZGUoKSk7CisgICAgICAgIH07CisKKyAgICAgICAgbWFpblRocmVhZENv
bm5lY3Rpb24tPnRydW5jYXRlKGlkZW50aWZpZXIsIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHNp
emUsIFdURk1vdmUobWFpblRocmVhZENhbGxiYWNrKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV29y
a2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpmbHVzaChGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciBpZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIg
YWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lk
Q2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBpZiAoIW1fc2NvcGUpCisgICAgICAgIHJldHVy
biBjYWxsYmFjayhFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKworICAgIGF1dG8g
Y2FsbGJhY2tJZGVudGlmaWVyID0gQ2FsbGJhY2tJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNh
ZmUoKTsKKyAgICBtX3ZvaWRDYWxsYmFja3MuYWRkKGNhbGxiYWNrSWRlbnRpZmllciwgV1RGTW92
ZShjYWxsYmFjaykpOworCisgICAgY2FsbE9uTWFpblRocmVhZChbY2FsbGJhY2tJZGVudGlmaWVy
LCB3b3JrZXJUaHJlYWQgPSBSZWYgeyBtX3Njb3BlLT50aHJlYWQoKSB9LCBtYWluVGhyZWFkQ29u
bmVjdGlvbiA9IG1fbWFpblRocmVhZENvbm5lY3Rpb24sIGlkZW50aWZpZXIsIGFjY2Vzc0hhbmRs
ZUlkZW50aWZpZXJdKCkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8gbWFpblRocmVhZENhbGxiYWNr
ID0gW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gV1RGTW92ZSh3b3JrZXJUaHJl
YWQpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1
bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoW2NhbGxiYWNrSWRlbnRpZmllciwgcmVzdWx0ID0gY3Jv
c3NUaHJlYWRDb3B5KHJlc3VsdCldIChhdXRvJiBzY29wZSkgbXV0YWJsZSB7CisgICAgICAgICAg
ICAgICAgaWYgKGF1dG8gY29ubmVjdGlvbiA9IGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPihz
Y29wZSkuZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKCkpCisgICAgICAgICAgICAgICAgICAg
IGNvbm5lY3Rpb24tPmNvbXBsZXRlVm9pZENhbGxiYWNrKGNhbGxiYWNrSWRlbnRpZmllciwgV1RG
TW92ZShyZXN1bHQpKTsKKyAgICAgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2Rl
KCkpOworICAgICAgICB9OworCisgICAgICAgIG1haW5UaHJlYWRDb25uZWN0aW9uLT5mbHVzaChp
ZGVudGlmaWVyLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXVEZNb3ZlKG1haW5UaHJlYWRDYWxs
YmFjaykpOworICAgIH0pOworfQorCit2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbjo6Y2xvc2UoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Vm9pZENhbGxiYWNrJiYgY2FsbGJhY2spCit7Cisg
ICAgaWYgKCFtX3Njb3BlKQorICAgICAgICByZXR1cm4gY2FsbGJhY2soRXhjZXB0aW9uIHsgSW52
YWxpZFN0YXRlRXJyb3IgfSk7CisKKyAgICBhdXRvIGNhbGxiYWNrSWRlbnRpZmllciA9IENhbGxi
YWNrSWRlbnRpZmllcjo6Z2VuZXJhdGVUaHJlYWRTYWZlKCk7CisgICAgbV92b2lkQ2FsbGJhY2tz
LmFkZChjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUoY2FsbGJhY2spKTsKKworICAgIGNhbGxP
bk1haW5UaHJlYWQoW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gUmVmIHsgbV9z
Y29wZS0+dGhyZWFkKCkgfSwgbWFpblRocmVhZENvbm5lY3Rpb24gPSBtX21haW5UaHJlYWRDb25u
ZWN0aW9uLCBpZGVudGlmaWVyLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyXSgpIG11dGFibGUgewor
ICAgICAgICBhdXRvIG1haW5UaHJlYWRDYWxsYmFjayA9IFtjYWxsYmFja0lkZW50aWZpZXIsIHdv
cmtlclRocmVhZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKV0oYXV0byByZXN1bHQpIG11dGFibGUg
eworICAgICAgICAgICAgd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFtj
YWxsYmFja0lkZW50aWZpZXIsIHJlc3VsdCA9IGNyb3NzVGhyZWFkQ29weShyZXN1bHQpXSAoYXV0
byYgc2NvcGUpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGlmIChhdXRvIGNvbm5lY3Rpb24g
PSBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oc2NvcGUpLmZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbigpKQorICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLT5jb21wbGV0ZVZvaWRD
YWxsYmFjayhjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUocmVzdWx0KSk7CisgICAgICAgICAg
ICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKKyAgICAgICAgfTsKKworICAgICAg
ICBtYWluVGhyZWFkQ29ubmVjdGlvbi0+Y2xvc2UoaWRlbnRpZmllciwgYWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgV1RGTW92ZShtYWluVGhyZWFkQ2FsbGJhY2spKTsKKyAgICB9KTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbi5oCmluZGV4IGVjNjlkMTc1YTJmNzU5ZjA2YjNmMWM1NDc0NGQ3MTBjOWU2
MWMzYWMuLjkwY2JjYmY2NzNhNTg2ZjI3NDQyZjk2NDAzNDdhOTI1MjY1MGNmYzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTQ2LDgg
KzQ2LDEwIEBAIHB1YmxpYzoKICAgICB1c2luZyBDYWxsYmFja0lkZW50aWZpZXIgPSBXb3JrZXJG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb25DYWxsYmFja0lkZW50aWZpZXI7CiAgICAgdm9pZCBk
aWRJc1NhbWVFbnRyeShDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPGJvb2w+JiYpOwog
ICAgIHZvaWQgZGlkR2V0SGFuZGxlKENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXI+JiYpOwotICAgIHZvaWQgZGlkUmVtb3ZlRW50cnkoQ2Fs
bGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25Pcjx2b2lkPiYmKTsKICAgICB2b2lkIGRpZFJlc29s
dmUoQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxWZWN0b3I8U3RyaW5nPj4mJik7Cisg
ICAgdm9pZCBkaWRDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKENhbGxiYWNrSWRlbnRpZmllciwgRXhj
ZXB0aW9uT3I8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyPiYmIHJlc3VsdCk7
CisgICAgdm9pZCBjb21wbGV0ZVZvaWRDYWxsYmFjayhDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2Vw
dGlvbk9yPHZvaWQ+JiYgcmVzdWx0KTsKKyAgICB2b2lkIGNvbXBsZXRlSW50ZWdlckNhbGxiYWNr
KENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8dWludDY0X3Q+JiYgcmVzdWx0KTsKIAog
cHJpdmF0ZToKICAgICBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oV29ya2VyR2xv
YmFsU2NvcGUmLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsKQEAgLTU2LDE1
ICs1OCwyMyBAQCBwcml2YXRlOgogICAgIHZvaWQgaXNTYW1lRW50cnkoRmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb246OlNhbWVFbnRyeUNhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgZ2V0Rmls
ZUhhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBi
b29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhh
bmRsZUNhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgZ2V0RGlyZWN0b3J5SGFuZGxlKEZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZO
ZWNlc3NhcnksIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0SGFuZGxlQ2FsbGJhY2sm
JikgZmluYWw7Ci0gICAgdm9pZCByZW1vdmVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb246OlJlbW92ZUVudHJ5Q2FsbGJhY2smJikgZmluYWw7CisgICAgdm9p
ZCByZW1vdmVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBu
YW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246
OlZvaWRDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIHJlc29sdmUoRmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb246OlJlc29sdmVDYWxsYmFjayYmKSBmaW5hbDsKIAorICAgIHZvaWQgY3JlYXRl
U3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpHZXRBY2Nlc3NIYW5kbGVDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2
b2lkIGdldFNpemUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpJbnRlZ2Vy
Q2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCB0cnVuY2F0ZShGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBz
aXplLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmKSBmaW5hbDsK
KyAgICB2b2lkIGZsdXNoKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Vm9p
ZENhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgY2xvc2UoRmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJikgZmluYWw7CisKICAgICBXZWFrUHRyPFdv
cmtlckdsb2JhbFNjb3BlPiBtX3Njb3BlOwogICAgIFJlZlB0cjxGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24+IG1fbWFpblRocmVhZENvbm5lY3Rpb247CiAgICAgSGFzaE1hcDxDYWxsYmFja0lk
ZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6U2FtZUVudHJ5Q2FsbGJhY2s+
IG1fc2FtZUVudHJ5Q2FsbGJhY2tzOwogICAgIEhhc2hNYXA8Q2FsbGJhY2tJZGVudGlmaWVyLCBG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhhbmRsZUNhbGxiYWNrPiBtX2dldEhhbmRs
ZUNhbGxiYWNrczsKLSAgICBIYXNoTWFwPENhbGxiYWNrSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpSZW1vdmVFbnRyeUNhbGxiYWNrPiBtX3JlbW92ZUVudHJ5Q2FsbGJh
Y2tzOwogICAgIEhhc2hNYXA8Q2FsbGJhY2tJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OlJlc29sdmVDYWxsYmFjaz4gbV9yZXNvbHZlQ2FsbGJhY2tzOworICAgIEhhc2hN
YXA8Q2FsbGJhY2tJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEFj
Y2Vzc0hhbmRsZUNhbGxiYWNrPiBtX2dldEFjY2Vzc0hhbmRsQ2FsbGJhY2tzOworICAgIEhhc2hN
YXA8Q2FsbGJhY2tJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRD
YWxsYmFjaz4gbV92b2lkQ2FsbGJhY2tzOworICAgIEhhc2hNYXA8Q2FsbGJhY2tJZGVudGlmaWVy
LCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkludGVnZXJDYWxsYmFjaz4gbV9pbnRlZ2Vy
Q2FsbGJhY2tzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRl
eCAxZWZmNmFlYjM5YmEwMmE3MzVmMjE0YzM0ZmQ3MGMxMDMzZTkzZjEwLi45Mzk3ODFkMDMxNDlh
NzljMGVlNDdkZmIyZTA5YjgwZTkyZWZlMDgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtNjEsNiArNjEs
NyBAQCBNb2R1bGVzL2ZldGNoL1dpbmRvd09yV29ya2VyR2xvYmFsU2NvcGVGZXRjaC5jcHAKIE1v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmNwcAogTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcAogTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuY3BwCitNb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwCiBNb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcAogTW9kdWxlcy9nZW9s
b2NhdGlvbi9HZW9Ob3RpZmllci5jcHAKIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24u
Y3BwCkBAIC0zMDQ2LDYgKzMwNDcsNyBAQCBKU0ZpbGVTeXN0ZW1FbnRyeUNhbGxiYWNrLmNwcAog
SlNGaWxlU3lzdGVtRmlsZUVudHJ5LmNwcAogSlNGaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKIEpT
RmlsZVN5c3RlbUhhbmRsZS5jcHAKK0pTRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwCiBK
U0ZpbGxNb2RlLmNwcAogSlNGb2N1c0V2ZW50LmNwcAogSlNGb2N1c09wdGlvbnMuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
NjE0YzNkNzBjMmNiMTNkZmMxYzIwY2IyNjA4NTI2NzBmNGVkN2U1YS4uNTI1YmJhYjFlMDA4MWVj
MDMyZTJhYmQyMjViMmI1Y2EyMWVmZDliZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjgxMCw2ICsyODEwLDcgQEAKIAkJOTMw
QUFDOUEyNTBFQjg0OTAwMTNEQTlGIC8qIENTU0NvbmRpdGlvblJ1bGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMEFBQzk4MjUwRUI4MTcwMDEzREE5
RiAvKiBDU1NDb25kaXRpb25SdWxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJOTMwQUFDOUYyNTBFRDQwOTAwMTNEQTlGIC8qIEpTQ1NTQ29uZGl0
aW9uUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTMwQUFDOUQyNTBFRDQwOTAwMTNEQTlGIC8qIEpTQ1NTQ29uZGl0aW9uUnVsZS5oICovOyB9Owog
CQk5MzBBQUNBMjI1MEVENDExMDAxM0RBOUYgLyogSlNDU1NHcm91cGluZ1J1bGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMEFBQ0EwMjUwRUQ0MTEw
MDEzREE5RiAvKiBKU0NTU0dyb3VwaW5nUnVsZS5oICovOyB9OworCQk5MzBFNDQ4NjI3MEMzNzIy
MDBERTdBQjcgLyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzBFNDQ4NDI3MEMzNzIx
MDBERTdBQjcgLyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTMxNTNCREExNDE4
MUY3QTAwRkNGNUJFIC8qIG1pc3NpbmdJbWFnZUAyeC5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMTUzQkQ5MTQxODFGN0EwMEZDRjVCRSAvKiBt
aXNzaW5nSW1hZ2VAMngucG5nICovOyB9OwogCQk5MzE1M0JEQzE0MTk1OUJDMDBGQ0Y1QkUgLyog
dGV4dEFyZWFSZXNpemVDb3JuZXIucG5nIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MzE1M0JEQjE0MTk1OUJCMDBGQ0Y1QkUgLyogdGV4dEFyZWFSZXNp
emVDb3JuZXIucG5nICovOyB9OwogCQk5MzE1M0JFMjE0MTk1QTU3MDBGQ0Y1QkUgLyogbWlzc2lu
Z0ltYWdlLnBuZyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTMxNTNCRTExNDE5NUE1NzAwRkNGNUJFIC8qIG1pc3NpbmdJbWFnZS5wbmcgKi87IH07CkBA
IC0yOTYzLDYgKzI5NjQsNyBAQAogCQk5M0Q2QjdBODI1NTFENDFGMDA1OEREM0EgLyogRHVtbXlT
cGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5M0Q2QjdBNjI1NTFEM0VEMDA1OEREM0EgLyogRHVtbXlTcGVlY2hS
ZWNvZ25pdGlvblByb3ZpZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJOTNEOUQ1M0MwREEyN0UxODAwNzcyMTZDIC8qIFJhbmdlQm91bmRhcnlQ
b2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNE
OUQ1M0IwREEyN0UxODAwNzcyMTZDIC8qIFJhbmdlQm91bmRhcnlQb2ludC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRTI0MUZGMEIyQjRFNDAw
MEM3MzJBMSAvKiBIVE1MRnJhbWVPd25lckVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTI0MUZFMEIyQjRFNDAwMEM3MzJBMSAvKiBIVE1M
RnJhbWVPd25lckVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQk5M0UyNjlBMjI3MEE1RDVEMDAyQzRGRjAgLyogRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzRTI2OTlGMjcwQTVENUMwMDJDNEZGMCAvKiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkz
RTJBMzA3MTIzRTlEQzAwMDlGRTEyQSAvKiBIVE1MUGFyc2VySWRpb21zLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0UyQTMwNTEyM0U5REMwMDA5RkUx
MkEgLyogSFRNTFBhcnNlcklkaW9tcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTkzRTVCMjY1MjQ1NUU5NkYwMDVDNTJEMCAvKiBBdHRyaWJ1dGVk
U3RyaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
M0U1QjI2MzI0NTVFOTZGMDA1QzUyRDAgLyogQXR0cmlidXRlZFN0cmluZy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRjE5OEU1MDgyNDVFNTkw
MDFFOUFCQyAvKiBIVE1MRG9jdW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1MjNEMjNDMDJERTQzOTYwMTg2MzVDQSAvKiBIVE1MRG9jdW1lbnQu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTE2
OTUsNiArMTE2OTcsNyBAQAogCQk5MzBBQUNBMDI1MEVENDExMDAxM0RBOUYgLyogSlNDU1NHcm91
cGluZ1J1bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDU1NHcm91cGlu
Z1J1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMwQUFDQTEyNTBFRDQxMTAw
MTNEQTlGIC8qIEpTQ1NTR3JvdXBpbmdSdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTQ1NTR3JvdXBpbmdSdWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTMwQzkwREMxOUNGOTY1MzAwRDZDMjFBIC8qIExlZ2FjeUlubGluZUl0ZXJhdG9y
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExlZ2FjeUlubGluZUl0
ZXJhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTMwRTQ0ODQyNzBDMzcy
MTAwREU3QUI3IC8qIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMxNTNCRDkxNDE4MUY3
QTAwRkNGNUJFIC8qIG1pc3NpbmdJbWFnZUAyeC5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSAibWlzc2luZ0ltYWdl
QDJ4LnBuZyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMTUzQkRCMTQxOTU5QkIw
MEZDRjVCRSAvKiB0ZXh0QXJlYVJlc2l6ZUNvcm5lci5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSB0ZXh0QXJlYVJl
c2l6ZUNvcm5lci5wbmc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMTUzQkUxMTQx
OTVBNTcwMEZDRjVCRSAvKiBtaXNzaW5nSW1hZ2UucG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRoID0gbWlzc2luZ0ltYWdl
LnBuZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExOTk0LDYgKzExOTk3LDkgQEAK
IAkJOTNFMjI3REYwQUY1ODlBRDAwRDQ4MzI0IC8qIFN1YnJlc291cmNlTG9hZGVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN1YnJlc291cmNlTG9hZGVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNFMjQxRkUwQjJCNEU0MDAwQzczMkExIC8q
IEhUTUxGcmFtZU93bmVyRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBIVE1MRnJhbWVPd25lckVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTNFMjQyNUUwQjJCNTA5NTAwQzczMkExIC8qIEhUTUxGcmFtZU93bmVyRWxlbWVudC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MRnJhbWVPd25lckVsZW1lbnQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0UyNjk5RDI3MEE1RDVCMDAyQzRG
RjAgLyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOTNFMjY5OUYyNzBBNUQ1QzAwMkM0RkYwIC8qIEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRTI2OUEwMjcw
QTVENUMwMDJDNEZGMCAvKiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRTJBMzA0MTIzRTlEQzAwMDlGRTEy
QSAvKiBIVE1MUGFyc2VySWRpb21zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEhUTUxQYXJzZXJJZGlvbXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5M0UyQTMwNTEyM0U5REMwMDA5RkUxMkEgLyogSFRNTFBhcnNlcklkaW9tcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MUGFyc2VySWRpb21zLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTkzRTVCMjU0MjQ1MzZCMUUwMDVDNTJEMCAvKiBVUkxEZWNvbXBv
c2l0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVSTERlY29t
cG9zaXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjM0MzgsNiArMjM0
NDQsMTAgQEAKIAkJCQk5MzJDOUJEOTI2REQ2MjYwMDA1M0IzREIgLyogRmlsZVN5c3RlbUhhbmRs
ZS5pZGwgKi8sCiAJCQkJOTM1NDI0MjcyNzAzQkM4ODAwNUNBNzJDIC8qIEZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLmggKi8sCiAJCQkJOTM1NDI0MjkyNzAzQkNBRDAwNUNBNzJDIC8qIEZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oICovLAorCQkJCTkzRTI2OUEwMjcwQTVENUMwMDJDNEZG
MCAvKiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAgKi8sCisJCQkJOTNFMjY5OUYyNzBB
NUQ1QzAwMkM0RkYwIC8qIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmggKi8sCisJCQkJOTNF
MjY5OUQyNzBBNUQ1QjAwMkM0RkYwIC8qIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbCAq
LywKKwkJCQk5MzBFNDQ4NDI3MEMzNzIxMDBERTdBQjcgLyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGVJZGVudGlmaWVyLmggKi8sCiAJCQkJOTM0NDNFN0IyNkU4QTZCQzAwNTg1MzhGIC8qIFN0
b3JhZ2VNYW5hZ2VyK0ZpbGVTeXN0ZW1BY2Nlc3MuaWRsICovLAogCQkJCTkzNDQzRTdEMjZFOEE2
QkMwMDU4NTM4RiAvKiBTdG9yYWdlTWFuYWdlckZpbGVTeXN0ZW1BY2Nlc3MuaCAqLywKIAkJCQk5
MzIzM0M4NTI3MDU0Qzc4MDBCQkY0MUUgLyogV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uLmNwcCAqLywKQEAgLTMyNTYwLDYgKzMyNTcwLDggQEAKIAkJCQk5MzQ0M0U4ODI2RTk5NUM0
MDA1ODUzOEYgLyogRmlsZVN5c3RlbUhhbmRsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM1NDI0
MkYyNzAzQ0E1MTAwNUNBNzJDIC8qIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5MzU0MjQzMDI3MDNDQjg2MDA1Q0E3MkMgLyogRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0UyNjlBMjI3MEE1RDVEMDAyQzRG
RjAgLyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkz
MEU0NDg2MjcwQzM3MjIwMERFN0FCNyAvKiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50
aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNUVCNjlGMEU4MURBRUIwMEIyNTk2NSAvKiBG
aWxsTGF5ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTcxMkJFNDgzMUZFODY1REQwMDIwMzFDQyAv
KiBGaWxsTW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODQ1RTcyRjgwRkQyNjFFRTAwQTg3RDc5
IC8qIEZpbHRlci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5kZXggZTgzNWRmN2ZmMGIyMjBkZWJhMDU4ZmQz
YTg0ZGY1ZDJjMjUxMzk1Yy4uMmJiOWE5MzliZmNiNmE5NzU4ODYyZjc4ODU2NmU3MmMwNGEwZTcw
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5O
YW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFt
ZXMuaApAQCAtMTI0LDYgKzEyNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhG
aWxlU3lzdGVtRmlsZUVudHJ5KSBcCiAgICAgbWFjcm8oRmlsZVN5c3RlbUZpbGVIYW5kbGUpIFwK
ICAgICBtYWNybyhGaWxlU3lzdGVtSGFuZGxlKSBcCisgICAgbWFjcm8oRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGUpIFwKICAgICBtYWNybyhHYW1lcGFkKSBcCiAgICAgbWFjcm8oR2FtZXBhZEJ1
dHRvbikgXAogICAgIG1hY3JvKEdhbWVwYWRFdmVudCkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUVycm9y
LmgKaW5kZXggNDQzYzk1MTRjZDkzMjkxM2RkZTM0YzI3ZjZiNWI1NzIwMWEwYTQxZi4uODI5MDAy
OTIzOTAxOTIzY2M3ZGJhNmMyNzdmM2MzMzRlNTUzNWU4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VF
cnJvci5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSA8V2Vi
Q29yZS9FeGNlcHRpb25Db2RlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9FeGNlcHRpb25Pci5oPgog
I2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMzQs
MjYgKzM0LDM3IEBAIGVudW0gY2xhc3MgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvciA6IHVpbnQ4X3Qg
ewogICAgIEZpbGVOb3RGb3VuZCwKICAgICBJbnZhbGlkTmFtZSwKICAgICBJbnZhbGlkTW9kaWZp
Y2F0aW9uLAorICAgIEludmFsaWRTdGF0ZSwKICAgICBUeXBlTWlzbWF0Y2gsCiAgICAgVW5rbm93
bgogfTsKIAotaW5saW5lIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgY29udmVydFRvRXhjZXB0aW9u
Q29kZShGaWxlU3lzdGVtU3RvcmFnZUVycm9yIGVycm9yKQoraW5saW5lIFdlYkNvcmU6OkV4Y2Vw
dGlvbk9yPHZvaWQ+IGNvbnZlcnRUb0V4Y2VwdGlvbk9yKHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvcj4gZXJyb3IpCit7CisgICAgaWYgKCFlcnJvcikKKyAgICAgICAgcmV0dXJu
IHsgfTsKKworICAgIHJldHVybiBjb252ZXJ0VG9FeGNlcHRpb25PcigqZXJyb3IpOworfQorCitp
bmxpbmUgV2ViQ29yZTo6RXhjZXB0aW9uIGNvbnZlcnRUb0V4Y2VwdGlvbihGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yIGVycm9yKQogewogICAgIHN3aXRjaCAoZXJyb3IpIHsKICAgICBjYXNlIEZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I6OkZpbGVOb3RGb3VuZDoKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6
OkV4Y2VwdGlvbkNvZGU6Ok5vdEZvdW5kRXJyb3I7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpF
eGNlcHRpb24geyBXZWJDb3JlOjpOb3RGb3VuZEVycm9yIH07CiAgICAgY2FzZSBGaWxlU3lzdGVt
U3RvcmFnZUVycm9yOjpJbnZhbGlkTW9kaWZpY2F0aW9uOgotICAgICAgICByZXR1cm4gV2ViQ29y
ZTo6RXhjZXB0aW9uQ29kZTo6SW52YWxpZE1vZGlmaWNhdGlvbkVycm9yOworICAgICAgICByZXR1
cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6SW52YWxpZE1vZGlmaWNhdGlvbkVycm9y
IH07CiAgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpUeXBlTWlzbWF0Y2g6Ci0gICAg
ICAgIHJldHVybiBXZWJDb3JlOjpFeGNlcHRpb25Db2RlOjpUeXBlRXJyb3I7CisgICAgICAgIHJl
dHVybiBXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpUeXBlRXJyb3IgfTsKICAgICBjYXNl
IEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWROYW1lOgotICAgICAgICByZXR1cm4gV2Vi
Q29yZTo6RXhjZXB0aW9uQ29kZTo6VW5rbm93bkVycm9yOworICAgICAgICByZXR1cm4gV2ViQ29y
ZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAiTmFtZSBpcyBpbnZhbGlkIiB9
OworICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxpZFN0YXRlOgorICAgICAg
ICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6SW52YWxpZFN0YXRlRXJyb3Ig
fTsKICAgICBjYXNlIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd246CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KIAotICAgIHJldHVybiBXZWJDb3JlOjpFeGNlcHRpb25Db2RlOjpVbmtub3du
RXJyb3I7CisgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25F
cnJvciB9OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKQEAgLTY2LDYgKzc3LDcgQEAgdGVt
cGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+
IHsKICAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpGaWxlTm90Rm91bmQs
CiAgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxpZE5hbWUsCiAg
ICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxpZE1vZGlmaWNhdGlv
biwKKyAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpJbnZhbGlkU3RhdGUs
CiAgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VHlwZU1pc21hdGNoLAog
ICAgICAgICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24KICAgICA+Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFn
ZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAKaW5kZXggMjJiYzNlZjRlZDI3OGExOWUyNDA2
Yzc5NDBjZmI2YzgzOGQ5MmRlYy4uYzhhMDE0MTNjYjMzMTk2NTNhOGViN2U3MmYxZWVjMzQ4M2M2
YTY5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0Zp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3BwCkBAIC0yOCw2ICsyOCw3IEBA
CiAKICNpbmNsdWRlICJGaWxlU3lzdGVtU3RvcmFnZUVycm9yLmgiCiAjaW5jbHVkZSAiRmlsZVN5
c3RlbVN0b3JhZ2VNYW5hZ2VyLmgiCisjaW5jbHVkZSA8d3RmL1Njb3BlLmg+CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCkBAIC0xMzksNCArMTQwLDc5IEBAIEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+
LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6cmVzb2x2
CiAgICAgcmV0dXJuIHJlc3RQYXRoLnNwbGl0KHBhdGhTZXBhcmF0b3IpOwogfQogCitFeHBlY3Rl
ZDxXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpjcmVhdGVTeW5jQWNjZXNz
SGFuZGxlKCkKK3sKKyAgICBpZiAoIW1fbWFuYWdlcikKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4
cGVjdGVkKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24pOworCisgICAgYm9vbCBhY3F1
aXJlZCA9IG1fbWFuYWdlci0+YWNxdWlyZUxvY2tGb3JGaWxlKG1fcGF0aCwgbV9pZGVudGlmaWVy
KTsKKyAgICBpZiAoIWFjcXVpcmVkKQorICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxpZFN0YXRlKTsKKworICAgIEFTU0VSVCghbV9hY3Rp
dmVTeW5jQWNjZXNzSGFuZGxlKTsKKyAgICBtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgPSBXZWJD
b3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXI6OmdlbmVyYXRlVGhyZWFk
U2FmZSgpOworICAgIHJldHVybiAqbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlOworfQorCitFeHBl
Y3RlZDx1aW50NjRfdCwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VI
YW5kbGU6OmdldFNpemUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpCit7CisgICAgaWYgKCFtX21hbmFnZXIpCisgICAg
ICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3du
KTsKKworICAgIGlmICghbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlIHx8ICptX2FjdGl2ZVN5bmNB
Y2Nlc3NIYW5kbGUgIT0gYWNjZXNzSGFuZGxlSWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIG1h
a2VVbmV4cGVjdGVkKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24pOworCisgICAgYXV0
byBzaXplID0gRmlsZVN5c3RlbTo6ZmlsZVNpemUobV9wYXRoKTsKKyAgICBpZiAoIXNpemUpCisg
ICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtu
b3duKTsKKworICAgIHJldHVybiBzaXplLnZhbHVlKCk7Cit9CisKK3N0ZDo6b3B0aW9uYWw8Rmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OnRydW5jYXRlKFdl
YkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyLCB1aW50NjRfdCBzaXplKQoreworICAgIGlmICghbV9tYW5hZ2VyKQorICAgICAg
ICByZXR1cm4gRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bjsKKworICAgIGlmICghbV9h
Y3RpdmVTeW5jQWNjZXNzSGFuZGxlIHx8ICptX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgIT0gYWNj
ZXNzSGFuZGxlSWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I6OlVua25vd247CisKKyAgICBhdXRvIGhhbmRsZSA9IEZpbGVTeXN0ZW06Om9wZW5GaWxlKG1f
cGF0aCwgRmlsZVN5c3RlbTo6RmlsZU9wZW5Nb2RlOjpSZWFkV3JpdGUpOworICAgIGF1dG8gY2xv
c2VGaWxlU2NvcGUgPSBtYWtlU2NvcGVFeGl0KFsmXSB7CisgICAgICAgIEZpbGVTeXN0ZW06OmNs
b3NlRmlsZShoYW5kbGUpOworICAgIH0pOworCisgICAgYXV0byByZXN1bHQgPSBGaWxlU3lzdGVt
Ojp0cnVuY2F0ZUZpbGUoaGFuZGxlLCBzaXplKTsKKyAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAg
cmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd247CisKKyAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworfQorCitzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpmbHVzaChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllcikKK3sKKyAgICBpZiAoIW1f
bWFuYWdlcikKKyAgICAgICAgcmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd247
CisKKyAgICBpZiAoIW1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSB8fCAqbV9hY3RpdmVTeW5jQWNj
ZXNzSGFuZGxlICE9IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpCisgICAgICAgIHJldHVybiBGaWxl
U3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOworCisgICAgLy8gRklYTUU6IHdoZW4gd3JpdGUg
b3BlcmF0aW9uIGlzIGltcGxlbWVudGVkLCBwZXJmb3JtIGFjdHVhbCBmbHVzaCBoZXJlLgorICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7Cit9CisKK3N0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmNsb3NlKFdlYkNvcmU6OkZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKQorewor
ICAgIGlmICghbV9tYW5hZ2VyKQorICAgICAgICByZXR1cm4gRmlsZVN5c3RlbVN0b3JhZ2VFcnJv
cjo6VW5rbm93bjsKKworICAgIGlmICghbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlIHx8ICptX2Fj
dGl2ZVN5bmNBY2Nlc3NIYW5kbGUgIT0gYWNjZXNzSGFuZGxlSWRlbnRpZmllcikKKyAgICAgICAg
cmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd247CisKKyAgICBtX21hbmFnZXIt
PnJlbGVhc2VMb2NrRm9yRmlsZShtX3BhdGgsIG1faWRlbnRpZmllcik7CisgICAgbV9hY3RpdmVT
eW5jQWNjZXNzSGFuZGxlID0gc3RkOjpudWxsb3B0OworCisgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5o
CmluZGV4IDg3OTkwOTA3ZDliODlhNTIzZjdmZjFmNTUwNzBhNTcwNjQwYWIzYjIuLmU0N2VkM2Ex
NmVlOTVhYjFkMTQ5OTM4ZDE5N2Y2NDYzZDk3NDkwMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhh
bmRsZS5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5j
bHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllci5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8
d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00OSw2ICs1MCwxMiBAQCBw
dWJsaWM6CiAgICAgc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZW1vdmVF
bnRyeShjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHkpOwogICAgIEV4
cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXNvbHZlKFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyKTsKIAorICAgIEV4cGVjdGVkPFdlYkNv
cmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvcj4gY3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpOworICAgIEV4cGVjdGVkPHVpbnQ2NF90
LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBnZXRTaXplKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllcik7CisgICAgc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yPiB0cnVuY2F0ZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIsIHVpbnQ2NF90IHNpemUpOworICAgIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcj4gZmx1c2goV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyKTsKKyAgICBzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGNsb3Nl
KFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcik7CisKIHByaXZh
dGU6CiAgICAgRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZp
bGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlcXVlc3RDcmVhdGVIYW5kbGUoSVBDOjpDb25uZWN0aW9u
OjpVbmlxdWVJRCwgVHlwZSwgU3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSk7
CiAKQEAgLTU3LDYgKzY0LDcgQEAgcHJpdmF0ZToKICAgICBUeXBlIG1fdHlwZTsKICAgICBTdHJp
bmcgbV9wYXRoOwogICAgIFN0cmluZyBtX25hbWU7CisgICAgc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXI+IG1fYWN0aXZlU3luY0FjY2Vz
c0hhbmRsZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3Jh
Z2VNYW5hZ2VyLmNwcAppbmRleCAxYjdhNTFhMmY2ODg0MTVjMzk2YjViNDhmZGMwNWY5OTVmYzZk
M2RlLi5jMzk2NTFiOTMwOTExMmRkZDIyZDg1NTllNjYxMDJkNGJlYTBhNzgzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VN
YW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmls
ZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmNwcApAQCAtODcsMTUgKzg3LDIxIEBAIHZvaWQgRmlsZVN5
c3RlbVN0b3JhZ2VNYW5hZ2VyOjpjb25uZWN0aW9uQ2xvc2VkKElQQzo6Q29ubmVjdGlvbjo6VW5p
cXVlSUQgY29ubmVjCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBh
dXRvIGhhbmRsZXMgPSBtX2hhbmRsZXNCeUNvbm5lY3Rpb24uZmluZChjb25uZWN0aW9uKTsKLSAg
ICBpZiAoaGFuZGxlcyA9PSBtX2hhbmRsZXNCeUNvbm5lY3Rpb24uZW5kKCkpCisgICAgYXV0byBj
b25uZWN0aW9uSGFuZGxlcyA9IG1faGFuZGxlc0J5Q29ubmVjdGlvbi5maW5kKGNvbm5lY3Rpb24p
OworICAgIGlmIChjb25uZWN0aW9uSGFuZGxlcyA9PSBtX2hhbmRsZXNCeUNvbm5lY3Rpb24uZW5k
KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGZvciAoYXV0byBoYW5kbGVJZGVudGlmaWVyIDog
aGFuZGxlcy0+dmFsdWUpIHsKLSAgICAgICAgYXV0byBoYW5kbGUgPSBtX2hhbmRsZXMudGFrZSho
YW5kbGVJZGVudGlmaWVyKTsKLSAgICAgICAgbV9yZWdpc3RyeS51bnJlZ2lzdGVySGFuZGxlKGhh
bmRsZUlkZW50aWZpZXIpOworICAgIGF1dG8gaWRlbnRpZmllcnMgPSBjb25uZWN0aW9uSGFuZGxl
cy0+dmFsdWU7CisgICAgZm9yIChhdXRvIGlkZW50aWZpZXIgOiBpZGVudGlmaWVycykgeworICAg
ICAgICBhdXRvIGhhbmRsZSA9IG1faGFuZGxlcy50YWtlKGlkZW50aWZpZXIpOworICAgICAgICBt
X3JlZ2lzdHJ5LnVucmVnaXN0ZXJIYW5kbGUoaWRlbnRpZmllcik7CiAgICAgfQotICAgIG1faGFu
ZGxlc0J5Q29ubmVjdGlvbi5yZW1vdmUoaGFuZGxlcyk7CisKKyAgICBtX2xvY2tNYXAucmVtb3Zl
SWYoWyZpZGVudGlmaWVyc10oYXV0byYgZW50cnkpIHsKKyAgICAgICAgcmV0dXJuIGlkZW50aWZp
ZXJzLmNvbnRhaW5zKGVudHJ5LnZhbHVlKTsKKyAgICB9KTsKKworICAgIG1faGFuZGxlc0J5Q29u
bmVjdGlvbi5yZW1vdmUoY29ubmVjdGlvbkhhbmRsZXMpOwogfQogCiBFeHBlY3RlZDxXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmls
ZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOjpnZXREaXJlY3RvcnkoSVBDOjpDb25uZWN0aW9uOjpVbmlx
dWVJRCBjb25uZWN0aW9uKQpAQCAtMTA1LDQgKzExMSwyMyBAQCBFeHBlY3RlZDxXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5
c3RlbQogICAgIHJldHVybiBjcmVhdGVIYW5kbGUoY29ubmVjdGlvbiwgRmlsZVN5c3RlbVN0b3Jh
Z2VIYW5kbGU6OlR5cGU6OkRpcmVjdG9yeSwgU3RyaW5nIHsgbV9wYXRoIH0sIHsgfSwgdHJ1ZSk7
CiB9CiAKK2Jvb2wgRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOjphY3F1aXJlTG9ja0ZvckZpbGUo
Y29uc3QgU3RyaW5nJiBwYXRoLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBp
ZGVudGlmaWVyKQoreworICAgIGlmIChtX2xvY2tNYXAuY29udGFpbnMocGF0aCkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIG1fbG9ja01hcC5hZGQocGF0aCwgaWRlbnRpZmllcik7Cisg
ICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOjpyZWxl
YXNlTG9ja0ZvckZpbGUoY29uc3QgU3RyaW5nJiBwYXRoLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGlmIChhdXRvIGxvY2tlZEJ5SWRlbnRp
ZmllciA9IG1fbG9ja01hcC5nZXQocGF0aCk7IGxvY2tlZEJ5SWRlbnRpZmllciA9PSBpZGVudGlm
aWVyKSB7CisgICAgICAgIG1fbG9ja01hcC5yZW1vdmUocGF0aCk7CisgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmls
ZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0
b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmgKaW5kZXggOGI0MzhiMmU5M2RmNGE4NDQ3
YzNiNzc0MGJjNTRjODdmY2E0MzE5Zi4uMWFlYmE5ZGFmNzk2OGM2OGQ4ZmU4YjNiZTdiNjc1NTI4
M2Q3NjEzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdl
L0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuaApAQCAtNDMsMTIgKzQzLDE1
IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIGdldFBhdGgoV2ViQ29yZTo6RmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIpOwogICAgIHZvaWQgY29ubmVjdGlvbkNsb3NlZChJUEM6OkNvbm5l
Y3Rpb246OlVuaXF1ZUlEKTsKICAgICBFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gZ2V0RGlyZWN0b3J5KElQQzo6Q29u
bmVjdGlvbjo6VW5pcXVlSUQpOworICAgIGJvb2wgYWNxdWlyZUxvY2tGb3JGaWxlKGNvbnN0IFN0
cmluZyYgcGF0aCwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIpOworICAgIGJv
b2wgcmVsZWFzZUxvY2tGb3JGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCwgV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIpOwogCiBwcml2YXRlOgogICAgIFN0cmluZyBtX3BhdGg7CiAg
ICAgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeSYgbV9yZWdpc3RyeTsKICAgICBIYXNo
TWFwPElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQsIEhhc2hTZXQ8V2ViQ29yZTo6RmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXI+PiBtX2hhbmRsZXNCeUNvbm5lY3Rpb247CiAgICAgSGFzaE1hcDxX
ZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPEZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlPj4gbV9oYW5kbGVzOworICAgIEhhc2hNYXA8U3RyaW5nLCBXZWJD
b3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcj4gbV9sb2NrTWFwOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IDY3YWViYTUy
MDZhNjYyYzYxZDliMGU1NmQ1NTk1MDljYjEyYTUwMjUuLjM2ODYxNzQyODE4MGQ3ODQ2YjJkNjJm
MDYwZTk5ZTVkYzdhN2RkNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC0yMjYs
NSArMjI2LDYwIEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpyZXNvbHZlKFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpCiAgICAgY29tcGxldGlvbkhhbmRs
ZXIoaGFuZGxlLT5yZXNvbHZlKHRhcmdldElkZW50aWZpZXIpKTsKIH0KIAordm9pZCBOZXR3b3Jr
U3RvcmFnZU1hbmFnZXI6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBl
Y3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBBU1NFUlQo
IVJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAgIGF1dG8gaGFuZGxlID0gbV9maWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZVJlZ2lzdHJ5LT5nZXRIYW5kbGUoaWRlbnRpZmllcik7CisgICAgaWYgKCFoYW5k
bGUpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZChGaWxl
U3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duKSk7CisKKyAgICBjb21wbGV0aW9uSGFuZGxlciho
YW5kbGUtPmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKSk7Cit9CisKK3ZvaWQgTmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyOjpnZXRTaXplRm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKEV4cGVjdGVkPHVpbnQ2NF90LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCit7CisgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CisKKyAgICBh
dXRvIGhhbmRsZSA9IG1fZmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeS0+Z2V0SGFuZGxl
KGlkZW50aWZpZXIpOworICAgIGlmICghaGFuZGxlKQorICAgICAgICByZXR1cm4gY29tcGxldGlv
bkhhbmRsZXIobWFrZVVuZXhwZWN0ZWQoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bikp
OworCisgICAgY29tcGxldGlvbkhhbmRsZXIoaGFuZGxlLT5nZXRTaXplKGFjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIpKTsKK30KKwordm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OnRydW5jYXRlRm9y
QWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NI
YW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0
ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQoreworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgYXV0byBoYW5kbGUg
PSBtX2ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnktPmdldEhhbmRsZShpZGVudGlmaWVy
KTsKKyAgICBpZiAoIWhhbmRsZSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKEZp
bGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24pOworCisgICAgY29tcGxldGlvbkhhbmRsZXIo
aGFuZGxlLT50cnVuY2F0ZShhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBzaXplKSk7Cit9CisKK3Zv
aWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpmbHVzaEZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsK
KworICAgIGF1dG8gaGFuZGxlID0gbV9maWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5LT5n
ZXRIYW5kbGUoaWRlbnRpZmllcik7CisgICAgaWYgKCFoYW5kbGUpCisgICAgICAgIHJldHVybiBj
b21wbGV0aW9uSGFuZGxlcihGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duKTsKKworICAg
IGNvbXBsZXRpb25IYW5kbGVyKGhhbmRsZS0+Zmx1c2goYWNjZXNzSGFuZGxlSWRlbnRpZmllcikp
OworfQorCit2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Y2xvc2VBY2Nlc3NIYW5kbGUoV2Vi
Q29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgQVNTRVJUKCFSdW5Mb29wOjppc01h
aW4oKSk7CisKKyAgICBhdXRvIGhhbmRsZSA9IG1fZmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdp
c3RyeS0+Z2V0SGFuZGxlKGlkZW50aWZpZXIpOworICAgIGlmICghaGFuZGxlKQorICAgICAgICBy
ZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bik7
CisKKyAgICBjb21wbGV0aW9uSGFuZGxlcihoYW5kbGUtPmNsb3NlKGFjY2Vzc0hhbmRsZUlkZW50
aWZpZXIpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFn
ZXIuaAppbmRleCAxYjgxMGRmNzhkNzNkMmZmMDllODRkZTJjY2IyMmJhMDYxODAxMWM4Li5hODE4
ODUxZmYxNDUzODY4YTc0ZDE3NmZiNmNiMjhmMjFhYjMyMzFiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFu
YWdlci5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiT3JpZ2luU3RvcmFnZU1hbmFnZXIu
aCIKICNpbmNsdWRlIDxXZWJDb3JlL0NsaWVudE9yaWdpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjksNiArNzAsMTEgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGdldERpcmVjdG9yeUhhbmRsZShJUEM6OkNvbm5lY3Rpb24mLCBXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciwgU3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vz
c2FyeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAgICB2b2lk
IHJlbW92ZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHksIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwogICAgIHZvaWQg
cmVzb2x2ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8
VmVjdG9yPFN0cmluZz4sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CisgICAgdm9pZCBj
cmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKKyAg
ICB2b2lkIGdldFNpemVGb3JBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDx1aW50NjRfdCwgRmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvcj4pPiYmKTsKKyAgICB2b2lkIHRydW5jYXRlRm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIsIHVpbnQ2NF90IHNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
c3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOworICAgIHZvaWQgZmx1
c2hGb3JBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdl
YkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7Cisg
ICAgdm9pZCBjbG9zZUFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4p
PiYmKTsKIAogICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogICAgIFJlZjxXb3JrUXVl
dWU+IG1fcXVldWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0
b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbgpp
bmRleCA2MmU3NDAzY2JiNzAwYWQ5NmJiZWJlMGZlYjgyMDVjODE2MjI0ZmY3Li40ZmVhMjc2NWZk
OTJhOTgwNjBjZDA0MDA2MmM1ZTk0NTVjODE5ZmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFn
ZU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTMyLDQgKzMyLDEwIEBACiAgICAgR2V0RGlyZWN0b3J5
SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0
cmluZyBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5KSAtPiAoRXhwZWN0ZWQ8V2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJv
cj4gcmVzdWx0KSBBc3luYyBXYW50c0Nvbm5lY3Rpb24KICAgICBSZW1vdmVFbnRyeShXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdHJpbmcgbmFtZSwgYm9v
bCBkZWxldGVSZWN1cnNpdmVseSkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpGaWxlU3lzdGVt
U3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCiAgICAgUmVzb2x2ZShXZWJDb3JlOjpGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciB0YXJnZXRJZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8VmVjdG9yPFN0cmluZz4s
IFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYworCisgICAgQ3Jl
YXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBp
ZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5
bmMKKyAgICBHZXRTaXplRm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
SWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8dWludDY0X3Qs
IFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYworICAgIFRydW5j
YXRlRm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBh
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXplKSAtPiAoc3RkOjpvcHRpb25hbDxX
ZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKKyAgICBGbHVzaEZv
ckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlm
aWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNz
SGFuZGxlSWRlbnRpZmllcikgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCisgICAgQ2xvc2VBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpIC0+IChz
dGQ6Om9wdGlvbmFsPFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3lu
YwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5w
eSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggZWQ5NGEz
ZWU1NjY4YTM0OGJjNzZhZGJkNDJiNjUwMDcxZDFiOTUxYS4uNTk2YjNmYWI2NTg2NmJkZWY1ODEy
ODBkOTExNjIwYzA3NGY2N2VmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dl
YmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5CkBAIC0yODIsNiArMjgyLDcgQEAgZGVmIHR5cGVzX3RoYXRfY2Fubm90X2JlX2Zvcndh
cmRfZGVjbGFyZWQoKToKICAgICAgICAgJ1dlYkNvcmU6OkRyYWdBcHBsaWNhdGlvbkZsYWdzJywK
ICAgICAgICAgJ1dlYkNvcmU6OkZldGNoSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcicsCisgICAgICAgICdXZWJDb3JlOjpGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcycs
CiAgICAgICAgICdXZWJDb3JlOjpJbWFnZURlY29kZXJJZGVudGlmaWVyJywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggYjA1NGM5MjM4YmRk
MmZjZWM4MTI5YjAzMDZiNTNiYmZiMWM3ZGY5My4uN2EyMzhhY2E0YzM4ZDY3NTU0YTdkYTYzZWU3
ZGZlMjU2YzdiY2Q4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbi5jcHAKQEAgLTY3LDcgKzY3LDcgQEAgdm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OmdldEZpbGVIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW4KIAog
ICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3Rv
cmFnZU1hbmFnZXI6OkdldEZpbGVIYW5kbGUoaWRlbnRpZmllciwgbmFtZSwgY3JlYXRlSWZOZWNl
c3NhcnkpLCBbbmFtZSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKV0oYXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAoIXJlc3VsdCkKLSAgICAg
ICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBjb252
ZXJ0VG9FeGNlcHRpb25Db2RlKHJlc3VsdC5lcnJvcigpKSB9KTsKKyAgICAgICAgICAgIHJldHVy
biBjb21wbGV0aW9uSGFuZGxlcihjb252ZXJ0VG9FeGNlcHRpb24ocmVzdWx0LmVycm9yKCkpKTsK
IAogICAgICAgICBhdXRvIGlkZW50aWZpZXIgPSByZXN1bHQudmFsdWUoKTsKICAgICAgICAgaWYg
KCFpZGVudGlmaWVyLmlzVmFsaWQoKSkKQEAgLTg0LDcgKzg0LDcgQEAgdm9pZCBXZWJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldERpcmVjdG9yeUhhbmRsZShXZWJDb3JlOjpGaWxlU3lz
dGVtSGFuZGwKIAogICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2Vz
OjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OkdldERpcmVjdG9yeUhhbmRsZShpZGVudGlmaWVyLCBu
YW1lLCBjcmVhdGVJZk5lY2Vzc2FyeSksIFtuYW1lLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIGlm
ICghcmVzdWx0KQotICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6
OkV4Y2VwdGlvbiB7IGNvbnZlcnRUb0V4Y2VwdGlvbkNvZGUocmVzdWx0LmVycm9yKCkpIH0pOwor
ICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGNvbnZlcnRUb0V4Y2VwdGlvbihy
ZXN1bHQuZXJyb3IoKSkpOwogCiAgICAgICAgIGF1dG8gaWRlbnRpZmllciA9IHJlc3VsdC52YWx1
ZSgpOwogICAgICAgICBpZiAoIWlkZW50aWZpZXIuaXNWYWxpZCgpKQpAQCAtOTQsMTYgKzk0LDEz
IEBAIHZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpnZXREaXJlY3RvcnlIYW5k
bGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsCiAgICAgfSk7CiB9CiAKLXZvaWQgV2ViRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpyZW1vdmVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRl
UmVjdXJzaXZlbHksIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6UmVtb3Zl
RW50cnlDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb246OnJlbW92ZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNp
dmVseSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2sm
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoIW1fY29ubmVjdGlvbikKICAgICAgICAg
cmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVu
a25vd25FcnJvciwgIkNvbm5lY3Rpb24gaXMgbG9zdCIgfSk7CiAKICAgICBtX2Nvbm5lY3Rpb24t
PnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpSZW1v
dmVFbnRyeShpZGVudGlmaWVyLCBuYW1lLCBkZWxldGVSZWN1cnNpdmVseSksIFtjb21wbGV0aW9u
SGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIGVycm9yKSBtdXRhYmxl
IHsKLSAgICAgICAgaWYgKGVycm9yKQotICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5k
bGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IGNvbnZlcnRUb0V4Y2VwdGlvbkNvZGUoZXJyb3IudmFs
dWUoKSkgfSk7Ci0KLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKKyAgICAgICAgcmV0
dXJuIGNvbXBsZXRpb25IYW5kbGVyKGNvbnZlcnRUb0V4Y2VwdGlvbk9yKGVycm9yKSk7CiAgICAg
fSk7CiB9CiAKQEAgLTExNCwxMCArMTExLDY2IEBAIHZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOjpyZXNvbHZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyCiAK
ICAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0
b3JhZ2VNYW5hZ2VyOjpSZXNvbHZlKGlkZW50aWZpZXIsIG90aGVySWRlbnRpZmllciksIFtjb21w
bGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIHJlc3VsdCkg
bXV0YWJsZSB7CiAgICAgICAgIGlmICghcmVzdWx0KQotICAgICAgICAgICAgcmV0dXJuIGNvbXBs
ZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IGNvbnZlcnRUb0V4Y2VwdGlvbkNvZGUo
cmVzdWx0LmVycm9yKCkpIH0pOworICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVy
KGNvbnZlcnRUb0V4Y2VwdGlvbihyZXN1bHQuZXJyb3IoKSkpOworCisgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKFdURk1vdmUocmVzdWx0LnZhbHVlKCkpKTsKKyAgICB9KTsKK30KKwordm9pZCBX
ZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2Vi
Q29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6Rmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRBY2Nlc3NIYW5kbGVDYWxsYmFjayYmIGNvbXBs
ZXRpb25IYW5kbGVyKQoreworICAgIGlmICghbV9jb25uZWN0aW9uKQorICAgICAgICByZXR1cm4g
Y29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVy
cm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0IiB9KTsKKworICAgIG1fY29ubmVjdGlvbi0+c2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OkNyZWF0ZVN5bmNB
Y2Nlc3NIYW5kbGUoaWRlbnRpZmllciksIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghcmVz
dWx0KQorICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGNvbnZlcnRUb0V4Y2Vw
dGlvbihyZXN1bHQuZXJyb3IoKSkpOwogCiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1v
dmUocmVzdWx0LnZhbHVlKCkpKTsKICAgICB9KTsKIH0KIAordm9pZCBXZWJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb246OmdldFNpemUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEludGVnZXJDYWxsYmFjayYmIGNvbXBsZXRpb25I
YW5kbGVyKQoreworICAgIGlmICghbV9jb25uZWN0aW9uKQorICAgICAgICByZXR1cm4gY29tcGxl
dGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAi
Q29ubmVjdGlvbiBpcyBsb3N0IiB9KTsKKworICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OkdldFNpemVGb3JBY2Nlc3NI
YW5kbGUoaWRlbnRpZmllciwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciksIFtjb21wbGV0aW9uSGFu
ZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7
CisgICAgICAgIGlmICghcmVzdWx0KQorICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5k
bGVyKGNvbnZlcnRUb0V4Y2VwdGlvbihyZXN1bHQuZXJyb3IoKSkpOworCisgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKHJlc3VsdC52YWx1ZSgpKTsKKyAgICB9KTsKK30KKwordm9pZCBXZWJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnRydW5jYXRlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXplLCBWb2lk
Q2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoIW1fY29ubmVjdGlvbikK
KyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdl
YkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5lY3Rpb24gaXMgbG9zdCIgfSk7CisKKyAgICBtX2Nv
bm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5h
Z2VyOjpUcnVuY2F0ZUZvckFjY2Vzc0hhbmRsZShpZGVudGlmaWVyLCBhY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyLCBzaXplKSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcildKGF1dG8gZXJyb3IpIG11dGFibGUgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihj
b252ZXJ0VG9FeGNlcHRpb25PcihlcnJvcikpOworICAgIH0pOworfQorCit2b2lkIFdlYkZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Zmx1c2goV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFZvaWRDYWxsYmFjayYmIGNvbXBsZXRp
b25IYW5kbGVyKQoreworICAgIGlmICghbV9jb25uZWN0aW9uKQorICAgICAgICByZXR1cm4gY29t
cGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9y
LCAiQ29ubmVjdGlvbiBpcyBsb3N0IiB9KTsKKworICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhB
c3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OkZsdXNoRm9yQWNjZXNz
SGFuZGxlKGlkZW50aWZpZXIsIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpLCBbY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byBlcnJvcikgbXV0YWJsZSB7
CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGNvbnZlcnRUb0V4Y2VwdGlvbk9yKGVycm9yKSk7
CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjbG9z
ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3Jl
OjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRp
ZmllciwgVm9pZENhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFtX2Nv
bm5lY3Rpb24pCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNl
cHRpb24geyBXZWJDb3JlOjpVbmtub3duRXJyb3IsICJDb25uZWN0aW9uIGlzIGxvc3QiIH0pOwor
CisgICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtT
dG9yYWdlTWFuYWdlcjo6Q2xvc2VBY2Nlc3NIYW5kbGUoaWRlbnRpZmllciwgYWNjZXNzSGFuZGxl
SWRlbnRpZmllciksIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpXShhdXRvIGVycm9yKSBtdXRhYmxlIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY29u
dmVydFRvRXhjZXB0aW9uT3IoZXJyb3IpKTsKKyAgICB9KTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKaW5k
ZXggYjYwMWJlNjQzNTNkYWZjNzc3YzZiY2U0MmIxZTlmMjkxMzkyMzBjMi4uZTA3MmU5ZjkzMjM0
ZTdmMmE2ZTY5MTc0YzdlNjk0ZjM4ZmFkNWE3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24uaApAQCAtNTEsOSArNTEsMTUgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGlzU2FtZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJD
b3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOjpTYW1lRW50cnlDYWxsYmFjayYmKTsKICAgICB2b2lkIGdldEZpbGVIYW5k
bGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFt
ZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpHZXRIYW5kbGVDYWxsYmFjayYmKTsKICAgICB2b2lkIGdldERpcmVjdG9yeUhhbmRs
ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1l
LCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb246OkdldEhhbmRsZUNhbGxiYWNrJiYpOwotICAgIHZvaWQgcmVtb3ZlRW50cnkoV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBk
ZWxldGVSZWN1cnNpdmVseSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpS
ZW1vdmVFbnRyeUNhbGxiYWNrJiYpOworICAgIHZvaWQgcmVtb3ZlRW50cnkoV2ViQ29yZTo6Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVS
ZWN1cnNpdmVseSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2Fs
bGJhY2smJik7CiAgICAgdm9pZCByZXNvbHZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6Rmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpSZXNvbHZlQ2FsbGJhY2smJik7CiAKKyAgICB2b2lk
IGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0QWNjZXNzSGFuZGxl
Q2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBnZXRTaXplKFdlYkNvcmU6OkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50
aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6SW50ZWdlckNhbGxi
YWNrJiYpIGZpbmFsOworICAgIHZvaWQgdHJ1bmNhdGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
ciwgdWludDY0X3Qgc2l6ZSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpW
b2lkQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBmbHVzaChXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFj
ayYmKSBmaW5hbDsKKyAgICB2b2lkIGNsb3NlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdl
YkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Vm9pZENhbGxiYWNrJiYpIGZpbmFs
OworCiAgICAgUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlN0b3Jh
Z2VDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJTdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggMmFjYjVmYWFmM2Y0NmQ3Zjg0ZGJiYmI4
NzMzMmQzMzY1NDkwMzc2ZC4uZTcwOTA1MDczOTkyYWRlNGY0OTcxYTQ3NjBjMDI3Mzc4MzdmYTgx
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlN0b3JhZ2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViU3RvcmFnZUNvbm5lY3Rpb24uY3BwCkBAIC01Niw3ICs1Niw3IEBAIHZv
aWQgV2ViU3RvcmFnZUNvbm5lY3Rpb246OmZpbGVTeXN0ZW1HZXREaXJlY3RvcnkoY29uc3QgV2Vi
Q29yZTo6Q2xpZW50T3JpZ2luJiBvCiAgICAgYXV0byYgY29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24o
KTsKICAgICBjb25uZWN0aW9uLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0
b3JhZ2VNYW5hZ2VyOjpGaWxlU3lzdGVtR2V0RGlyZWN0b3J5KG9yaWdpbiksIFtjb21wbGV0aW9u
SGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIHJlc3VsdCkgbXV0YWJs
ZSB7CiAgICAgICAgIGlmICghcmVzdWx0KQotICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25I
YW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IGNvbnZlcnRUb0V4Y2VwdGlvbkNvZGUocmVzdWx0
LmVycm9yKCkpIH0pOworICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGNvbnZl
cnRUb0V4Y2VwdGlvbihyZXN1bHQuZXJyb3IoKSkpOwogCiAgICAgICAgIGF1dG8gaWRlbnRpZmll
ciA9IHJlc3VsdC52YWx1ZSgpOwogICAgICAgICBpZiAoIWlkZW50aWZpZXIuaXNWYWxpZCgpKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IGI0YjY3Njg1ZmNiMDFiYjdlNTVlZWQyMDkwYWY3NTRiMzg5MDRjYzIuLjVkODA3M2Zl
OWE4ZjBjNmNkZTZkNTU3NDcwNDVjYmYzZTQ3NmI1M2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAor
MjAyMS0xMC0wNSAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgc3VwcG9ydCBmb3IgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTE4NQorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vODM4NDc4NTk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3MvcmVzb3VyY2VzL3N5bmMtYWNj
ZXNzLWhhbmRsZS1iYXNpY3MuanM6IEFkZGVkLgorICAgICAgICAoZmluaXNoVGVzdCk6CisgICAg
ICAgIChnZXREaXJlY3RvcnkpOgorICAgICAgICAqIHN0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9z
eW5jLWFjY2Vzcy1oYW5kbGUtYmFzaWNzLXdvcmtlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHN0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtYmFzaWNz
LXdvcmtlci5odG1sOiBBZGRlZC4KKwogMjAyMS0xMC0wNSAgU2ltb24gRnJhc2VyICA8c2ltb24u
ZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjgzMzM1KTogTW9tZW50
dW0gc2Nyb2xsaW5nIGlzIG5vIGxvbmdlciBsb2NrZWQgdG8gYW4gYXhpcwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9DaGFuZ2VMb2cKaW5kZXggN2M0Y2Y3YjRhOWUxYTNmZWRlNGExZjA1NzA3M2ZiMGVmZWM4
NWVlNi4uMjVhMWY0NDIzZjlhMTE5MjY0MTI3MjgwNmMxYmQ3OTI1ZWJjNzg2MSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMTAtMDUgIFNpaHVp
IExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzExODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzODQ3ODU5
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZpbGUtc3lzdGVtLWFjY2Vzcy9zYW5kYm94ZWRfRmlsZVN5c3RlbUZp
bGVIYW5kbGUtc3luYy1hY2Nlc3MtaGFuZGxlLWxvY2suaHR0cHMudGVudGF0aXZlLndvcmtlci1l
eHBlY3RlZC50eHQ6CisKIDIwMjEtMTAtMDUgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkB3
ZWJraXQub3JnPgogCiAgICAgICAgIFtjc3MtcG9zaXRpb24tc3RpY2t5XSBzY3JvbGxJbnRvVmll
dyBzaG91bGQgbm90IHRha2UgaW50byBhY2NvdW50IHN0aWNreSBwb3NpdGlvbmluZyBvZmZzZXRz
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZpbGUtc3lzdGVtLWFjY2Vzcy9zYW5kYm94ZWRfRmlsZVN5c3RlbUZpbGVIYW5kbGUtc3luYy1h
Y2Nlc3MtaGFuZGxlLWxvY2suaHR0cHMudGVudGF0aXZlLndvcmtlci1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZpbGUtc3lzdGVtLWFj
Y2Vzcy9zYW5kYm94ZWRfRmlsZVN5c3RlbUZpbGVIYW5kbGUtc3luYy1hY2Nlc3MtaGFuZGxlLWxv
Y2suaHR0cHMudGVudGF0aXZlLndvcmtlci1leHBlY3RlZC50eHQKaW5kZXggYjQ2MjhhN2RmMjJk
ZmU4OGE3YjM3MTJmZmIzNjdkZmNjZWVlODcwNC4uN2RhZGMyZDRmMDZkODQ0YTIxMmY2NDA0YzBk
MWFiOWY1NjM3MGNiOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9maWxlLXN5c3RlbS1hY2Nlc3Mvc2FuZGJveGVkX0ZpbGVTeXN0ZW1GaWxl
SGFuZGxlLXN5bmMtYWNjZXNzLWhhbmRsZS1sb2NrLmh0dHBzLnRlbnRhdGl2ZS53b3JrZXItZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmlsZS1zeXN0ZW0tYWNjZXNzL3NhbmRib3hlZF9GaWxlU3lzdGVtRmlsZUhhbmRsZS1zeW5j
LWFjY2Vzcy1oYW5kbGUtbG9jay5odHRwcy50ZW50YXRpdmUud29ya2VyLWV4cGVjdGVkLnR4dApA
QCAtMSw0ICsxLDQgQEAKIAotRkFJTCBUaGVyZSBjYW4gb25seSBiZSBvbmUgb3BlbiBhY2Nlc3Mg
aGFuZGxlIGF0IGFueSBnaXZlbiB0aW1lIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlv
biB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogZmlsZUhhbmRsZS5jcmVhdGVTeW5jQWNj
ZXNzSGFuZGxlIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2ZpbGVIYW5kbGUuY3JlYXRlU3luY0Fj
Y2Vzc0hhbmRsZSgpJywgJ2ZpbGVIYW5kbGUuY3JlYXRlU3luY0FjY2Vzc0hhbmRsZScgaXMgdW5k
ZWZpbmVkKSIKLUZBSUwgQW4gYWNjZXNzIGhhbmRsZSBmcm9tIG9uZSBmaWxlIGRvZXMgbm90IGlu
dGVyZmVyZSB3aXRoIHRoZSBjcmVhdGlvbiBvZiBhbiBhY2Nlc3MgaGFuZGxlIG9uIGFub3RoZXIg
ZmlsZSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0
ICJUeXBlRXJyb3I6IGZvb0ZpbGVIYW5kbGUuY3JlYXRlU3luY0FjY2Vzc0hhbmRsZSBpcyBub3Qg
YSBmdW5jdGlvbi4gKEluICdmb29GaWxlSGFuZGxlLmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKScs
ICdmb29GaWxlSGFuZGxlLmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUnIGlzIHVuZGVmaW5lZCkiCitQ
QVNTIFRoZXJlIGNhbiBvbmx5IGJlIG9uZSBvcGVuIGFjY2VzcyBoYW5kbGUgYXQgYW55IGdpdmVu
IHRpbWUKK1BBU1MgQW4gYWNjZXNzIGhhbmRsZSBmcm9tIG9uZSBmaWxlIGRvZXMgbm90IGludGVy
ZmVyZSB3aXRoIHRoZSBjcmVhdGlvbiBvZiBhbiBhY2Nlc3MgaGFuZGxlIG9uIGFub3RoZXIgZmls
ZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3MvcmVz
b3VyY2VzL3N5bmMtYWNjZXNzLWhhbmRsZS1iYXNpY3MuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2ZpbGVzeXN0ZW1hY2Nlc3MvcmVzb3VyY2VzL3N5bmMtYWNjZXNzLWhhbmRsZS1iYXNpY3MuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOTY3MTI1YTQ2ZGM2YjZlYzNmY2ZlZjEzOTRhODYwOGM4NjUyODcyYwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9yZXNv
dXJjZXMvc3luYy1hY2Nlc3MtaGFuZGxlLWJhc2ljcy5qcwpAQCAtMCwwICsxLDgxIEBACitpZiAo
dGhpcy5pbXBvcnRTY3JpcHRzKSB7CisgICAgaW1wb3J0U2NyaXB0cygnLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QuanMnKTsKK30KKworZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgYmFz
aWMgZnVudGlvbmFsaXRpZXMgb2YgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuIik7CisKK3Zh
ciByb290SGFuZGxlLCBmaWxlSGFuZGxlLCBhY2Nlc3NIYW5kbGUxLCBhY2Nlc3NIYW5kbGUyLCBj
cmVhdGVFcnJvcjsKKworZnVuY3Rpb24gZmluaXNoVGVzdChlcnJvcikKK3sKKyAgICBpZiAoZXJy
b3IpIHsKKyAgICAgICAgdGVzdEZhaWxlZChlcnJvcik7CisgICAgfQorICAgIGZpbmlzaEpTVGVz
dCgpOworfQorCitmdW5jdGlvbiBnZXREaXJlY3RvcnkoKSB7CisgICAgbmF2aWdhdG9yLnN0b3Jh
Z2UuZ2V0RGlyZWN0b3J5KCkudGhlbigoaGFuZGxlKSA9PiB7CisgICAgICAgIHJvb3RIYW5kbGUg
PSBoYW5kbGU7CisgICAgICAgIGNyZWF0ZUZpbGVIYW5kbGUocm9vdEhhbmRsZSk7CisgICAgfSku
Y2F0Y2goKGVycm9yKSA9PiB7CisgICAgICAgIGZpbmlzaFRlc3QoZXJyb3IpOworICAgIH0pOwor
fQorCitmdW5jdGlvbiBjcmVhdGVGaWxlSGFuZGxlKGZyb21IYW5kbGUpIHsKKyAgICBmcm9tSGFu
ZGxlLmdldEZpbGVIYW5kbGUoInN5bmMtYWNjZXNzLWhhbmRsZS50eHQiLCB7ICJjcmVhdGUiIDog
dHJ1ZSB9KS50aGVuKChoYW5kbGUpID0+IHsKKyAgICAgICAgZmlsZUhhbmRsZSA9IGhhbmRsZTsK
KyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJmaWxlSGFuZGxlLm5hbWUiLCAic3luYy1h
Y2Nlc3MtaGFuZGxlLnR4dCIpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImZpbGVI
YW5kbGUua2luZCIsICJmaWxlIik7CisgICAgICAgIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoZmls
ZUhhbmRsZSk7CisgICAgfSkuY2F0Y2goKGVycm9yKSA9PiB7CisgICAgICAgIGZpbmlzaFRlc3Qo
ZXJyb3IpOworICAgIH0pOworfQorCitmdW5jdGlvbiBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKGZy
b21IYW5kbGUpIHsKKyAgICBmcm9tSGFuZGxlLmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKS50aGVu
KChoYW5kbGUpID0+IHsKKyAgICAgICAgYWNjZXNzSGFuZGxlMSA9IGhhbmRsZTsKKyAgICAgICAg
ZGVidWcoImFjY2Vzc0hhbmRsZTEgaXMgY3JlYXRlZCIpOworICAgICAgICBnZXRTaXplKGFjY2Vz
c0hhbmRsZTEpOworICAgIH0pLmNhdGNoKChlcnJvcikgPT4geworICAgICAgICBmaW5pc2hUZXN0
KGVycm9yKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gZ2V0U2l6ZShhY2Nlc3NIYW5kbGUpIHsK
KyAgICBhY2Nlc3NIYW5kbGUuZ2V0U2l6ZSgpLnRoZW4oKHJlc3VsdCkgPT4geworICAgICAgICBz
aXplID0gcmVzdWx0OworICAgICAgICBzaG91bGRCZSgic2l6ZSIsICIwIik7CisgICAgICAgIGNy
ZWF0ZVNlY29uZFN5bmNBY2Vzc0hhbmRsZShmaWxlSGFuZGxlKTsKKyAgICB9KS5jYXRjaCgoZXJy
b3IpID0+IHsKKyAgICAgICAgZmluaXNoVGVzdChlcnJvcik7CisgICAgfSk7Cit9CisKK2Z1bmN0
aW9uIGNyZWF0ZVNlY29uZFN5bmNBY2Vzc0hhbmRsZShmcm9tSGFuZGxlKSB7CisgICAgZnJvbUhh
bmRsZS5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlKCkudGhlbigoaGFuZGxlKSA9PiB7CisgICAgICAg
IGFjY2Vzc0hhbmRsZTIgPSBoYW5kbGU7CisgICAgICAgIC8vIFNlY29uZCBjcmVhdGlvbiBzaG91
bGQgc3VjY2VlZC4KKyAgICAgICAgZGVidWcoImFjY2Vzc0hhbmRsZTIgaXMgY3JlYXRlZCIpOwor
ICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgfSkuY2F0Y2goKGVycm9yKSA9PiB7CisgICAgICAg
IC8vIEZpcnN0IGNyZWF0aW9uIHNob3VsZCBmYWlsIGFzIHRoZXJlIGlzIGFuIGFjdGl2ZSBoYW5k
bGUuCisgICAgICAgIGNyZWF0ZUVycm9yID0gZXJyb3I7CisgICAgICAgIGRlYnVnKCJhY2Nlc3NI
YW5kbGUyIGNhbm5vdCBiZSBjcmVhdGVkIik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygiY3JlYXRlRXJyb3IudG9TdHJpbmcoKSIsICJJbnZhbGlkU3RhdGVFcnJvcjogVGhlIG9iamVj
dCBpcyBpbiBhbiBpbnZhbGlkIHN0YXRlLiIpOworICAgICAgICBjbG9zZSgpOworICAgIH0pOwor
fQorCitmdW5jdGlvbiBjbG9zZSgpIHsKKyAgICBhY2Nlc3NIYW5kbGUxLmNsb3NlKCkudGhlbigo
cmVzdWx0KSA9PiB7CisgICAgICAgIGRlYnVnKCJhY2Nlc3NIYW5kbGUxIGlzIGNsb3NlZCIpOwor
ICAgICAgICBjcmVhdGVTZWNvbmRTeW5jQWNlc3NIYW5kbGUoZmlsZUhhbmRsZSk7CisgICAgfSku
Y2F0Y2goKGVycm9yKSA9PiB7CisgICAgICAgIGZpbmlzaFRlc3QoZXJyb3IpOworICAgIH0pOwor
fQorCitnZXREaXJlY3RvcnkoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvZmls
ZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtYmFzaWNzLXdvcmtlci1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFu
ZGxlLWJhc2ljcy13b3JrZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3NGY1ZDcxNTU3MzA3
ZTRiZDE0YzE0NmJhOTNhYmQ1MmRiOWE0ZjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLWJhc2ljcy13b3Jr
ZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAKK1tXb3JrZXJdIFRoaXMgdGVzdCBjaGVj
a3MgYmFzaWMgZnVudGlvbmFsaXRpZXMgb2YgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitTdGFydGluZyB3b3JrZXI6IHJlc291cmNl
cy9zeW5jLWFjY2Vzcy1oYW5kbGUtYmFzaWNzLmpzCitQQVNTIFtXb3JrZXJdIGZpbGVIYW5kbGUu
bmFtZSBpcyAic3luYy1hY2Nlc3MtaGFuZGxlLnR4dCIKK1BBU1MgW1dvcmtlcl0gZmlsZUhhbmRs
ZS5raW5kIGlzICJmaWxlIgorW1dvcmtlcl0gYWNjZXNzSGFuZGxlMSBpcyBjcmVhdGVkCitQQVNT
IFtXb3JrZXJdIHNpemUgaXMgMAorW1dvcmtlcl0gYWNjZXNzSGFuZGxlMiBjYW5ub3QgYmUgY3Jl
YXRlZAorUEFTUyBbV29ya2VyXSBjcmVhdGVFcnJvci50b1N0cmluZygpIGlzICJJbnZhbGlkU3Rh
dGVFcnJvcjogVGhlIG9iamVjdCBpcyBpbiBhbiBpbnZhbGlkIHN0YXRlLiIKK1tXb3JrZXJdIGFj
Y2Vzc0hhbmRsZTEgaXMgY2xvc2VkCitbV29ya2VyXSBhY2Nlc3NIYW5kbGUyIGlzIGNyZWF0ZWQK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3Mt
aGFuZGxlLWJhc2ljcy13b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3Rl
bWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtYmFzaWNzLXdvcmtlci5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjdmZWMzNmE1OTYwYjRhYWEyMWEyZjgwYWQxMWNlZDRiN2VjZWQ5ZDUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFu
ZGxlLWJhc2ljcy13b3JrZXIuaHRtbApAQCAtMCwwICsxLDkgQEAKKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8c2NyaXB0Pgord29ya2VyID0gc3RhcnRXb3JrZXIoJ3Jlc291cmNlcy9zeW5j
LWFjY2Vzcy1oYW5kbGUtYmFzaWNzLmpzJyk7PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440421</attachid>
            <date>2021-10-06 13:03:35 -0700</date>
            <delta_ts>2021-10-06 13:06:05 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-231185-20211006130334.patch</filename>
            <type>text/plain</type>
            <size>93385</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGE4NDgwMmU4NjAzYjY5ZDZiNGYwOWI2
NTQyNjY5ZTQzMTU3ZjQ1N2MuLmEyYTk4NzQ4NjRlNDJmNzg0ZjBjN2ZiOGE0YzY1NGYxYzVlMzY3
YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEtMTAtMDUgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzExODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzODQ3ODU5PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgKiBTY3JpcHRzL1ByZWZlcmVuY2Vz
L1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWw6CisgICAgICAgICogd3RmL0ZpbGVTeXN0
ZW0uaDoKKyAgICAgICAgKiB3dGYvZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHA6CisgICAgICAgIChX
VEY6OkZpbGVTeXN0ZW1JbXBsOjpmbHVzaEZpbGUpOgorICAgICAgICAqIHd0Zi9wb3NpeC9GaWxl
U3lzdGVtUE9TSVguY3BwOgorICAgICAgICAoV1RGOjpGaWxlU3lzdGVtSW1wbDo6Zmx1c2hGaWxl
KToKKyAgICAgICAgKiB3dGYvd2luL0ZpbGVTeXN0ZW1XaW4uY3BwOgorICAgICAgICAoV1RGOjpG
aWxlU3lzdGVtSW1wbDo6Zmx1c2hGaWxlKToKKwogMjAyMS0xMC0wNSAgRGF2aWQgS2lsemVyICA8
ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZvbGxvdy11cCAjMjogV1RGOjpSZXRhaW5Q
dHI8PiBhbGxvd3MgYXNzaWdubWVudCBvZiB0d28gcG9pbnRlciB0eXBlcyB0aGF0IGFyZSBub3Qg
YXNzaWduYWJsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDM0M2IyNzYyNmM4YzJjY2JhNjY3NTAwYmE3ODFmYjJk
YzYyYTAyNWMuLjUyOWE3N2E4ZDEyZDc3YjA0ZjZiZjEyNGU2N2I5NjZiNmEyOWI3NjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw2MiBAQAorMjAyMS0xMC0wNSAgU2lodWkgTGl1ICA8c2lodWlfbGl1
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMTE4NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODM4NDc4NTk+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICBJbXBsZW1lbnQgYmFzaWMgc3VwcG9y
dCBmb3IgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUgYXMgcHJvcG9zYWw6CisgICAgICAgIGh0
dHBzOi8vZ2l0aHViLmNvbS9XSUNHL2ZpbGUtc3lzdGVtLWFjY2Vzcy9ibG9iL21haW4vQWNjZXNz
SGFuZGxlLm1kCisKKyAgICAgICAgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUgY2FuIGJlIGNy
ZWF0ZWQgdmlhIEZpbGVTeXN0ZW1GaWxlSGFuZGxlLCBhbmQgaXQgY29tbXVpY2F0ZXMgd2l0aCBi
YWNrZW5kIHZpYSAKKyAgICAgICAgRmlsZVN5c3RlbUZpbGVIYW5kbGUuCisKKyAgICAgICAgVGVz
dDogc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1iYXNpY3Mtd29y
a2VyLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRT
b3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0
LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBI
ZWFkZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lz
dGVtRmlsZUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRs
ZTo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVt
RmlsZUhhbmRsZTo6Z2V0U2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhh
bmRsZTo6dHJ1bmNhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6
OmZsdXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjbG9zZSk6
CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxl
Lmg6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFu
ZGxlLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uLmg6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6fkZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlOjp0cnVuY2F0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZTo6Z2V0U2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZTo6Zmx1c2gpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU6OmNsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlOjpkaWRDbG9zZSk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5pZGw6IEFkZGVkLgorICAgICAg
ICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dv
cmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
b3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnNjb3BlQ2xvc2VkKToKKyAgICAgICAg
KFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6cmVtb3ZlRW50cnkp
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpk
aWRDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y29tcGxldGVJbnRlZ2VyQ2FsbGJhY2spOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjb21wbGV0ZVZv
aWRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpnZXRTaXplKToKKyAgICAgICAgKFdlYkNv
cmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6dHJ1bmNhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpmbHVzaCk6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNsb3Nl
KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6
ZGlkUmVtb3ZlRW50cnkpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBTb3Vy
Y2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oOgorCiAyMDIxLTEwLTA1
ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JF
U1NJT04gKHIyODMzMzUpOiBNb21lbnR1bSBzY3JvbGxpbmcgaXMgbm8gbG9uZ2VyIGxvY2tlZCB0
byBhbiBheGlzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY4NWRmM2YwYWUzYjlmMGM2M2FhN2M5MTNlODI2MjcyZmE1
ZmEzZTMuLjVkMjA5MjVhZTUyYWZkNDMyZjdkYmYzMWIxNTUxMzJlMGNhYWZmZmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNTQgQEAKKzIwMjEtMTAtMDUgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBs
ZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzEx
ODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzODQ3ODU5PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgQ3VycmVudGx5IHdlIG9ubHkgYWxsb3cgb25l
IG9wZW4gYWNjZXNzIGhhbmRsZSBvbiBvbmUgZmlsZS4gU2Vjb25kIGFjY2VzcyBoYW5kbGUgY2Fu
IGJlIGNyZWF0ZWQgYWZ0ZXIgdGhlIGZpcnN0CisgICAgICAgIGlzIGNsb3NlZC4KKworICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oOgorICAg
ICAgICAoV2ViS2l0Ojpjb252ZXJ0VG9FeGNlcHRpb25Pcik6CisgICAgICAgIChXZWJLaXQ6OmNv
bnZlcnRUb0V4Y2VwdGlvbik6CisgICAgICAgIChXZWJLaXQ6OmNvbnZlcnRUb0V4Y2VwdGlvbkNv
ZGUpOiBEZWxldGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3Rl
bVN0b3JhZ2VIYW5kbGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhh
bmRsZTo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlOjpnZXRTaXplKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGU6OnRydW5jYXRlKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3Jh
Z2VIYW5kbGU6OmZsdXNoKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5k
bGU6OmNsb3NlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1T
dG9yYWdlSGFuZGxlLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lz
dGVtU3RvcmFnZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFn
ZU1hbmFnZXI6OmNvbm5lY3Rpb25DbG9zZWQpOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVt
U3RvcmFnZU1hbmFnZXI6OmFjcXVpcmVMb2NrRm9yRmlsZSk6CisgICAgICAgIChXZWJLaXQ6OkZp
bGVTeXN0ZW1TdG9yYWdlTWFuYWdlcjo6cmVsZWFzZUxvY2tGb3JGaWxlKToKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpjcmVhdGVTeW5jQWNjZXNzSGFu
ZGxlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpnZXRTaXplRm9y
QWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjp0
cnVuY2F0ZUZvckFjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTdG9yYWdl
TWFuYWdlcjo6Zmx1c2hGb3JBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
U3RvcmFnZU1hbmFnZXI6OmNsb3NlQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAodHlwZXNfdGhhdF9jYW5u
b3RfYmVfZm9yd2FyZF9kZWNsYXJlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldEZpbGVIYW5kbGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldERpcmVjdG9yeUhh
bmRsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6
cmVtb3ZlRW50cnkpOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb246OnJlc29sdmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldFNpemUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnRydW5jYXRlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpmbHVzaCk6CisgICAgICAgIChXZWJL
aXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y2xvc2UpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9yYWdlQ29ubmVjdGlv
bi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlN0b3JhZ2VDb25uZWN0aW9uOjpmaWxlU3lzdGVt
R2V0RGlyZWN0b3J5KToKKwogMjAyMS0xMC0wNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFkZCBTUEkgdG8gbGF1bmNoIGEgc2VydmljZSBzZXJ2aWNlIHdvcmtl
ciBpbiBhIFdLV2ViVmlldyBhbmQgZXhwb3NlIHNlcnZpY2Ugd29ya2VyIHRvIGluamVjdGVkIGJ1
bmRsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZl
cmVuY2VzRXhwZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMv
V2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAppbmRleCA1MjVlNjAzNTJmNThlZTRhNTZl
YjQ4ODBjZDA1NDZkOWMwM2Q2ZmFkLi5iMTEyNjQ3NjA0ZmRhOWRhZGY0NDY0OTQ5ZjIxZWVhNzk5
ZjI1ZTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJl
ZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVy
ZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtMjYsNiArMjYsMTggQEAK
ICMgVGhleSBtdXN0IGluY2x1ZGUgYSBodW1hblJlYWRhYmxlTmFtZSBhbmQgaHVtYW5SZWFkYWJs
ZURlc2NyaXB0aW9uLiBUaGlzIGlzCiAjICAgdGhlIHRleHQgZXhwb3NlZCB0byB0aGUgdXNlciBm
cm9tIHRoZSBXZWJLaXQgY2xpZW50LgogCitBY2Nlc3NIYW5kbGVFbmFibGVkOgorICB0eXBlOiBi
b29sCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiQWNjZXNzSGFuZGxlIEFQSSIKKyAgaHVtYW5SZWFk
YWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIEFjY2Vzc0hhbmRsZSBBUEkiCisgIGRlZmF1bHRWYWx1
ZToKKyAgICBXZWJLaXRMZWdhY3k6CisgICAgICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYktpdDoK
KyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgV2ViQ29yZToKKyAgICAgIGRlZmF1bHQ6IGZhbHNl
CisKIEFjY2Vzc2liaWxpdHlPYmplY3RNb2RlbEVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgaHVt
YW5SZWFkYWJsZU5hbWU6ICJBY2Nlc3NpYmlsaXR5IE9iamVjdCBNb2RlbCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uaCBiL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0u
aAppbmRleCBjNDUwMWQxNGE3NDJhYTIxZmE2ZGM3YTczZjgzMDllYzZhODdmNGQ1Li5iMTA3Mzcw
Njk4ZTFhZDFkYTc5NGE3ZTQ2NmNjMDA3MTJhN2Q4NjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi9GaWxlU3lzdGVtLmgKKysrIGIvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5oCkBAIC0x
NTQsNiArMTU0LDcgQEAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgY2xvc2VGaWxlKFBsYXRmb3Jt
RmlsZUhhbmRsZSYpOwogLy8gUmV0dXJucyB0aGUgcmVzdWx0aW5nIG9mZnNldCBmcm9tIHRoZSBi
ZWdpbm5pbmcgb2YgdGhlIGZpbGUgaWYgc3VjY2Vzc2Z1bCwgLTEgb3RoZXJ3aXNlLgogV1RGX0VY
UE9SVF9QUklWQVRFIGxvbmcgbG9uZyBzZWVrRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUsIGxvbmcg
bG9uZyBvZmZzZXQsIEZpbGVTZWVrT3JpZ2luKTsKIFdURl9FWFBPUlRfUFJJVkFURSBib29sIHRy
dW5jYXRlRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUsIGxvbmcgbG9uZyBvZmZzZXQpOworV1RGX0VY
UE9SVF9QUklWQVRFIGJvb2wgZmx1c2hGaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSk7CiAvLyBSZXR1
cm5zIG51bWJlciBvZiBieXRlcyBhY3R1YWxseSByZWFkIGlmIHN1Y2Nlc3NmdWwsIC0xIG90aGVy
d2lzZS4KIFdURl9FWFBPUlRfUFJJVkFURSBpbnQgd3JpdGVUb0ZpbGUoUGxhdGZvcm1GaWxlSGFu
ZGxlLCBjb25zdCB2b2lkKiBkYXRhLCBpbnQgbGVuZ3RoKTsKIC8vIFJldHVybnMgbnVtYmVyIG9m
IGJ5dGVzIGFjdHVhbGx5IHdyaXR0ZW4gaWYgc3VjY2Vzc2Z1bCwgLTEgb3RoZXJ3aXNlLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAgYi9Tb3VyY2Uv
V1RGL3d0Zi9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcAppbmRleCA1NDYyNDRjNzA0MTA4NGNiNGI0
MmU5ZjBhYWViYThhMjYyOTAzZmQzLi5mODEyN2YwYmEwZjQ0ZTQ5ZWYyODU5ZTE1MTgwMDhjMWIz
MDQ4NDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9nbGliL0ZpbGVTeXN0ZW1HbGliLmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcApAQCAtMjEzLDYg
KzIxMywxMSBAQCBib29sIHRydW5jYXRlRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlLCBs
b25nIGxvbmcgb2Zmc2V0KQogICAgIHJldHVybiBnX3NlZWthYmxlX3RydW5jYXRlKEdfU0VFS0FC
TEUoZ19pb19zdHJlYW1fZ2V0X291dHB1dF9zdHJlYW0oR19JT19TVFJFQU0oaGFuZGxlKSkpLCBv
ZmZzZXQsIG51bGxwdHIsIG51bGxwdHIpOwogfQogCitib29sIGZsdXNoRmlsZShQbGF0Zm9ybUZp
bGVIYW5kbGUgaGFuZGxlKQoreworICAgIHJldHVybiBnX291dHB1dF9zdHJlYW1fZmx1c2goZ19p
b19zdHJlYW1fZ2V0X291dHB1dF9zdHJlYW0oR19JT19TVFJFQU0oaGFuZGxlKSksIG51bGxwdHIs
IG51bGxwdHIpOworfQorCiBpbnQgd3JpdGVUb0ZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRs
ZSwgY29uc3Qgdm9pZCogZGF0YSwgaW50IGxlbmd0aCkKIHsKICAgICBpZiAoIWxlbmd0aCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHAgYi9Tb3Vy
Y2UvV1RGL3d0Zi9wb3NpeC9GaWxlU3lzdGVtUE9TSVguY3BwCmluZGV4IGIxMzM4MjRlYzJhMTE1
ZWE1MGM3YzM0ZTBmMWE1ZWNlODA0MDJkNGMuLjc5NTY3MGZkNmQ4MDI3OGRmNmMxNzBiMjE2MmM0
OGI1MmU5Y2JiZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3Bvc2l4L0ZpbGVTeXN0ZW1Q
T1NJWC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvcG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNwcApA
QCAtMTE4LDYgKzExOCwxMSBAQCBib29sIHRydW5jYXRlRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUg
aGFuZGxlLCBsb25nIGxvbmcgb2Zmc2V0KQogICAgIHJldHVybiAhZnRydW5jYXRlKGhhbmRsZSwg
b2Zmc2V0KTsKIH0KIAorYm9vbCBmbHVzaEZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSkK
K3sKKyAgICByZXR1cm4gIWZzeW5jKGhhbmRsZSk7Cit9CisKIGludCB3cml0ZVRvRmlsZShQbGF0
Zm9ybUZpbGVIYW5kbGUgaGFuZGxlLCBjb25zdCB2b2lkKiBkYXRhLCBpbnQgbGVuZ3RoKQogewog
ICAgIGRvIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3dpbi9GaWxlU3lzdGVtV2luLmNw
cCBiL1NvdXJjZS9XVEYvd3RmL3dpbi9GaWxlU3lzdGVtV2luLmNwcAppbmRleCBmZmE2MjkzYzcz
ZTg0ZWVlMGJjZTEyY2M0ZDBkYTdjZGNhNjBiODkzLi4yYmM4ZjIwMTA1MWM3ZDg1YjE3YjQ0YWMy
NzM4ZDJlZDAxZjJkOTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi93aW4vRmlsZVN5c3Rl
bVdpbi5jcHAKKysrIGIvU291cmNlL1dURi93dGYvd2luL0ZpbGVTeXN0ZW1XaW4uY3BwCkBAIC0z
MDMsNiArMzAzLDEyIEBAIGJvb2wgdHJ1bmNhdGVGaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5k
bGUsIGxvbmcgbG9uZyBvZmZzZXQpCiAgICAgcmV0dXJuIFNldEZpbGVJbmZvcm1hdGlvbkJ5SGFu
ZGxlKGhhbmRsZSwgRmlsZUVuZE9mRmlsZUluZm8sICZlb2ZJbmZvLCBzaXplb2YoRklMRV9FTkRf
T0ZfRklMRV9JTkZPKSk7CiB9CiAKK2Jvb2wgZmx1c2hGaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSBo
YW5kbGUpCit7CisgICAgLy8gTm90IGltcGxlbWVudGVkLgorICAgIHJldHVybiBmYWxzZTsKK30K
KwogaW50IHdyaXRlVG9GaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUsIGNvbnN0IHZvaWQq
IGRhdGEsIGludCBsZW5ndGgpCiB7CiAgICAgaWYgKCFpc0hhbmRsZVZhbGlkKGhhbmRsZSkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CmluZGV4IDMwMzk0NzU5NzFkNGZiN2Y2ZjliZDFhMDZiOGZmMjZjYzUw
MTdjYmQuLmRmODFlYjZhNzFjY2M4NmNlMWJjOTljNjFhNWEzYmI2ZmJkMzQ0OGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CkBAIC0yOTcsNiArMjk3LDcgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExf
RklMRVMKICAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhh
bmRsZS5pZGwKICAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5k
bGUuaWRsCiAgICAgTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaWRs
CisgICAgTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
LmlkbAogICAgIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9TdG9yYWdlTWFuYWdlcitGaWxlU3lz
dGVtQWNjZXNzLmlkbAogCiAgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5pZGwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxp
c3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4
IGMwYmU4NmE3MzU0NDIyZjFmYmRhMGVhMGM2YWQzNDEzOTliZWM5MmUuLmUyZTg5NjE5MjNjMGM5
OTZiM2ZkMDgxNGNjNTAyM2I5MmY2MmY0ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTI2LDYgKzEyNiw3IEBAICQoUFJPSkVDVF9E
SVIpL01vZHVsZXMvZmV0Y2gvV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZStGZXRjaC5pZGwKICQo
UFJPSkVDVF9ESVIpL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5
SGFuZGxlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVT
eXN0ZW1GaWxlSGFuZGxlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRsCiAkKFBST0pFQ1RfRElSKS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvU3RvcmFnZU1hbmFnZXIrRmlsZVN5c3RlbUFjY2Vzcy5p
ZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkLmlkbAogJChQUk9KRUNU
X0RJUikvTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRCdXR0b24uaWRsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDIxMTEyY2UxNjQ3ZGQ1
ZDRjNmFmNjU5MThiZmIzNDJhNGRjYmNlYmIuLmY0ZjQ4MjI4YmRjNDYyMzAxN2ZkNDQ5ZDEyNjQx
NjQ4MGVlN2ZiYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91
dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0CkBAIC05MDcsNiArOTA3LDggQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNGaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRmlsZVN5c3RlbUZpbGVIYW5k
bGUuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNGaWxl
U3lzdGVtSGFuZGxlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNGaWxlU3lzdGVtSGFuZGxlLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0ZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTRmlsbE1vZGUuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU0ZpbGxNb2RlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTRm9jdXNFdmVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4
IDkyZDNjNDcxOTYwYmNjNzJlODkyOTA2M2VhZjViNTdkOTc0M2JlNTQuLmJlOGFjMjcyNDk4ZGQy
NGU2OGI2OWQ5YmQ0MjU3MDQ1NWQ5OWNlNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZQpAQCAtMTU1LDYgKzE1NSw3IEBAIEpTX0JJTkRJTkdfSURMUyA6PSBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5pZGwg
XAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxl
SGFuZGxlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbUhhbmRsZS5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvU3RvcmFnZU1hbmFnZXIrRmlsZVN5c3RlbUFjY2Vzcy5pZGwgXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWQuaWRsIFwKICAgICAkKFdlYkNv
cmUpL01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkQnV0dG9uLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpp
bmRleCAzOTRjYjNiYjZlMWEzMjcyNDk1MWIyMjY1N2VkOTU5OWZkMzc4ZjgyLi5mZjg3OGZiNWQz
Mjk4ZjUzZThiNzA2ZjhjN2E1ODZkYTlmY2NhODgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTQy
LDYgKzQyLDggQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIE1v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmgKICAgICBNb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaAogICAgIE1vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAorICAgIE1vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oCisgICAgTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
ci5oCiAgICAgTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1N0b3JhZ2VNYW5hZ2VyRmlsZVN5c3Rl
bUFjY2Vzcy5oCiAgICAgTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbi5oCiAgICAgTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbkNhbGxiYWNrSWRlbnRpZmllci5oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVI
YW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVT
eXN0ZW1GaWxlSGFuZGxlLmNwcAppbmRleCBiMjEyNTQ3YjVmZTliOWJkMjU2N2ZiMWIwOTQ4MGJi
ZGQwZjE5ZjY3Li5hNjlhNzJjNmI2OGEyZDZjZDQ1YzhmYjczNDRiYTQzYjU4NzMzMTY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bUZpbGVIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKQEAgLTI3LDcgKzI3LDkgQEAKICNpbmNsdWRl
ICJGaWxlU3lzdGVtRmlsZUhhbmRsZS5oIgogCiAjaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaCIKICNp
bmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgIkpTRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGUuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00OSw1ICs1MSw0MSBAQCB2b2lkIEZpbGVTeXN0ZW1GaWxl
SGFuZGxlOjpnZXRGaWxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZT4+JiYg
cHJvbQogICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAi
Tm90IGltcGxlbWVudGVkIl9zIH0pOwogfQogCit2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpj
cmVhdGVTeW5jQWNjZXNzSGFuZGxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+PiYmIHByb21pc2UpCit7CisgICAgY29ubmVjdGlvbigp
LmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoaWRlbnRpZmllcigpLCBbcHJvdGVjdGVkVGhpcyA9IFJl
ZiB7ICp0aGlzIH0sIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0
YWJsZSB7CisgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCisgICAgICAgICAgICBy
ZXR1cm4gcHJvbWlzZS5yZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CisKKyAgICAg
ICAgcHJvbWlzZS5zZXR0bGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZShwcm90
ZWN0ZWRUaGlzLmdldCgpLCByZXN1bHQucmV0dXJuVmFsdWUoKSkpOworICAgIH0pOworfQorCit2
b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpnZXRTaXplKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBET01Qcm9taXNlRGVmZXJyZWQ8
SURMVW5zaWduZWRMb25nTG9uZz4mJiBwcm9taXNlKQoreworICAgIGNvbm5lY3Rpb24oKS5nZXRT
aXplKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgW3Byb21pc2UgPSBXVEZN
b3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIHByb21pc2Uuc2V0
dGxlKFdURk1vdmUocmVzdWx0KSk7CisgICAgfSk7Cit9CisKK3ZvaWQgRmlsZVN5c3RlbUZpbGVI
YW5kbGU6OnRydW5jYXRlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nl
c3NIYW5kbGVJZGVudGlmaWVyLCB1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSwgRE9NUHJvbWlzZURl
ZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3sKKyAgICBjb25uZWN0aW9uKCkudHJ1bmNhdGUoaWRl
bnRpZmllcigpLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBzaXplLCBbcHJvbWlzZSA9IFdURk1v
dmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgcHJvbWlzZS5zZXR0
bGUoV1RGTW92ZShyZXN1bHQpKTsKKyAgICB9KTsKK30KKwordm9pZCBGaWxlU3lzdGVtRmlsZUhh
bmRsZTo6Zmx1c2goRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hh
bmRsZUlkZW50aWZpZXIsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCit7Cisg
ICAgY29ubmVjdGlvbigpLmZsdXNoKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmll
ciwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7Cisg
ICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7CisgICAgfSk7Cit9CisKK3Zv
aWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNsb3NlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
SWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGNvbm5l
Y3Rpb24oKS5jbG9zZShpZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbUZpbGVIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCmluZGV4IDI1MDA1YzIxMzM4YmU3ODZhOTlmMjBiOGZh
YWRlM2MxMmE3YWRjZDUuLmFmY2VhMWY3MDEzNzkwOGZlMWM3NDBlMWZmZWViMWRlNzgxNDQxNTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxl
U3lzdGVtRmlsZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCkBAIC0yNiwxMCArMjYsMTMgQEAKICNwcmFn
bWEgb25jZQogCiAjaW5jbHVkZSAiRmlsZVN5c3RlbUhhbmRsZS5oIgorI2luY2x1ZGUgIkZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIEZpbGU7CitjbGFzcyBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTsKK3RlbXBs
YXRlPHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKIAogY2xhc3MgRmlsZVN5c3RlbUZpbGVI
YW5kbGUgZmluYWwgOiBwdWJsaWMgRmlsZVN5c3RlbUhhbmRsZSB7CiAgICAgV1RGX01BS0VfSVNP
X0FMTE9DQVRFRChGaWxlU3lzdGVtRmlsZUhhbmRsZSk7CkBAIC0zNyw2ICs0MCwxMiBAQCBwdWJs
aWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxGaWxlU3lzdGVtRmlsZUhhbmRsZT4g
Y3JlYXRlKFN0cmluZyYmLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgUmVmPEZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJik7CiAgICAgdm9pZCBnZXRGaWxlKERPTVByb21pc2VEZWZl
cnJlZDxJRExJbnRlcmZhY2U8RmlsZT4+JiYpOwogCisgICAgdm9pZCBjcmVhdGVTeW5jQWNjZXNz
SGFuZGxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGU+PiYmKTsKKyAgICB2b2lkIGdldFNpemUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMVW5zaWduZWRMb25nTG9uZz4mJik7
CisgICAgdm9pZCB0cnVuY2F0ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIs
IHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7Cisg
ICAgdm9pZCBmbHVzaChGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIERPTVBy
b21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKyAgICB2b2lkIGNsb3NlKEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2
b2lkPiYmKT4mJik7CisKIHByaXZhdGU6CiAgICAgRmlsZVN5c3RlbUZpbGVIYW5kbGUoU3RyaW5n
JiYsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uPiYmKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmlkbAppbmRleCA5ZTZh
YTg4NTZlZDk3YjZjYmE0NjM4NTA1YWZhYTFlNTVhNmQ5NWY1Li5iYzFjZWUyZTFjNDNiNDNkNzdh
MTFkOWI0ZjZmYTBmZTE5ZmQ3MTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5pZGwK
QEAgLTIzLDExICsyMywxMyBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgog
ICovCiAKKy8vIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vZmlsZS1zeXN0ZW0tYWNjZXNzLyNhcGkt
ZmlsZXN5c3RlbWhhbmRsZQorCiBbCiAgICAgRW5hYmxlZEJ5U2V0dGluZz1GaWxlU3lzdGVtQWNj
ZXNzRW5hYmxlZCwKICAgICBFeHBvc2VkPShXaW5kb3csV29ya2VyKSwKICAgICBTZWN1cmVDb250
ZXh0CiBdIGludGVyZmFjZSBGaWxlU3lzdGVtRmlsZUhhbmRsZSA6IEZpbGVTeXN0ZW1IYW5kbGUg
ewogICAgIFByb21pc2U8RmlsZT4gZ2V0RmlsZSgpOwotICAgIC8vIEZJWE1FOiBhZGQgUHJvbWlz
ZTxGaWxlU3lzdGVtV3JpdGFibGVGaWxlU3RyZWFtPiBjcmVhdGVXcml0YWJsZShvcHRpb25hbCBG
aWxlU3lzdGVtQ3JlYXRlV3JpdGFibGVPcHRpb25zIG9wdGlvbnMpOworICAgIFtFbmFibGVkQnlT
ZXR0aW5nPUFjY2Vzc0hhbmRsZUVuYWJsZWQsIEV4cG9zZWQ9V29ya2VyXSBQcm9taXNlPEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlPiBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKCk7CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IGU2MDVhNjdkOTJhYjQz
NmZkNjQ4M2UzNzhiNmY2MzhiNGQ4MWFhMGQuLjRjMGYzYjAwZmEyZGNmODY2ODUzYWViNjE0MGVj
NjRhMzczNWRhNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgK
QEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIuaCIKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRl
IDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KIApAQCAtMzgsMTUgKzM5LDI0IEBAIHRlbXBs
YXRlPHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKIGNsYXNzIEZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24+IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5GaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24oKSB7IH0KKwogICAgIHVzaW5nIFNhbWVFbnRyeUNhbGxiYWNrID0gQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjxib29sPiYmKT47CiAgICAgdXNpbmcgR2V0SGFuZGxl
Q2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPEZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyPiYmKT47Ci0gICAgdXNpbmcgUmVtb3ZlRW50cnlDYWxsYmFjayA9IENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+OwogICAgIHVzaW5nIFJl
c29sdmVDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8VmVjdG9y
PFN0cmluZz4+JiYpPjsKKyAgICB1c2luZyBHZXRBY2Nlc3NIYW5kbGVDYWxsYmFjayA9IENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyPiYmKT47CisgICAgdXNpbmcgVm9pZENhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT47CisgICAgdXNpbmcgSW50ZWdlckNhbGxiYWNr
ID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx1aW50NjRfdD4mJik+OworCiAg
ICAgdmlydHVhbCB2b2lkIGlzU2FtZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgU2FtZUVudHJ5Q2FsbGJhY2smJikgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBnZXRGaWxlSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIEdldEhhbmRsZUNhbGxi
YWNrJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0RGlyZWN0b3J5SGFuZGxlKEZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNl
c3NhcnksIEdldEhhbmRsZUNhbGxiYWNrJiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcmVtb3Zl
RW50cnkoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9v
bCBkZWxldGVSZWN1cnNpdmVseSwgUmVtb3ZlRW50cnlDYWxsYmFjayYmKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHJlbW92ZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHksIFZvaWRDYWxsYmFjayYmKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIHJlc29sdmUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZXNvbHZlQ2FsbGJhY2smJikgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyLCBHZXRBY2Nlc3NIYW5kbGVDYWxsYmFjayYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdl
dFNpemUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlSWRlbnRpZmllciwgSW50ZWdlckNhbGxiYWNrJiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
dHJ1bmNhdGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSwgVm9pZENhbGxiYWNrJiYpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgZmx1c2goRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgVm9pZENhbGxiYWNrJiYpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgY2xvc2UoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgVm9pZENhbGxiYWNrJiYpID0gMDsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmZhZDRiOWE4NGI4NDlkNWJjZTQ3YzM0YTNmMGI2ZDYxZGU3NmQy
YWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwCkBAIC0wLDAgKzEsODcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGUuaCIKKworI2luY2x1ZGUgIkJ1ZmZlclNvdXJjZS5oIgorI2luY2x1ZGUgIkV4
Y2VwdGlvbk9yLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbUZpbGVIYW5kbGUuaCIKKyNpbmNsdWRl
ICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxl
ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZT4gRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZShGaWxlU3lzdGVtRmlsZUhh
bmRsZSYgc291cmNlLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRlbnRp
ZmllcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZShzb3VyY2UsIGlkZW50aWZpZXIpKTsKK30KKworRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiBzb3Vy
Y2UsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAg
IDogbV9zb3VyY2Uoc291cmNlKQorICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCit7Cit9
CisKK0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjp+RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGUoKQoreworICAgIGlmICghbV9pc0Nsb3NlZCkKKyAgICAgICAgbV9zb3VyY2UtPmNsb3NlKG1f
aWRlbnRpZmllciwgW10oYXV0bykgeyB9KTsKK30KKwordm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZTo6dHJ1bmNhdGUodW5zaWduZWQgbG9uZyBsb25nIHNpemUsIERPTVByb21pc2VEZWZl
cnJlZDx2b2lkPiYmIHByb21pc2UpCit7CisgICAgbV9zb3VyY2UtPnRydW5jYXRlKG1faWRlbnRp
Zmllciwgc2l6ZSwgV1RGTW92ZShwcm9taXNlKSk7Cit9CisKK3ZvaWQgRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGU6OmdldFNpemUoRE9NUHJvbWlzZURlZmVycmVkPElETFVuc2lnbmVkTG9uZ0xv
bmc+JiYgcHJvbWlzZSkKK3sKKyAgICBtX3NvdXJjZS0+Z2V0U2l6ZShtX2lkZW50aWZpZXIsIFdU
Rk1vdmUocHJvbWlzZSkpOworfQorCit2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpm
bHVzaChET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQoreworICAgIG1fc291cmNl
LT5mbHVzaChtX2lkZW50aWZpZXIsIFdURk1vdmUocHJvbWlzZSkpOworfQorCit2b2lkIEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZShET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBw
cm9taXNlKQoreworICAgIGlmIChtX2lzQ2xvc2VkKQorICAgICAgICByZXR1cm4gcHJvbWlzZS5y
ZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CisKKyAgICBtX3NvdXJjZS0+
Y2xvc2UobV9pZGVudGlmaWVyLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHByb21p
c2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlm
ICh3ZWFrVGhpcykKKyAgICAgICAgICAgIHdlYWtUaGlzLT5kaWRDbG9zZSgpOworCisgICAgICAg
IHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7CisgICAgfSk7Cit9CisKK3ZvaWQgRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmRpZENsb3NlKCkKK3sKKyAgICBtX2lzQ2xvc2VkID0g
dHJ1ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOWU0MTU3YjY1NDFiOTNlNmVhNWZlMDIzN2Yw
Y2YyMTVkMDNjM2JmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKQEAgLTAsMCArMSw2
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiSURMVHlwZXMuaCIKKyNpbmNs
dWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZpbGVT
eXN0ZW1GaWxlSGFuZGxlOwordGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIERPTVByb21pc2VEZWZl
cnJlZDsKKworY2xhc3MgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUgOiBwdWJsaWMgUmVmQ291
bnRlZDxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4geworcHVibGljOgorICAgIHN0cnVjdCBGaWxlc3lz
dGVtUmVhZFdyaXRlT3B0aW9ucyB7CisgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBhdDsKKyAg
ICB9OworCisgICAgc3RhdGljIFJlZjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4gY3JlYXRl
KEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyKTsKKyAgICB+RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoKTsKKworICAgIHZvaWQgdHJ1
bmNhdGUodW5zaWduZWQgbG9uZyBsb25nIHNpemUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYm
KTsKKyAgICB2b2lkIGdldFNpemUoRE9NUHJvbWlzZURlZmVycmVkPElETFVuc2lnbmVkTG9uZ0xv
bmc+JiYpOworICAgIHZvaWQgZmx1c2goRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOworICAg
IHZvaWQgY2xvc2UoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOworICAgIHZvaWQgZGlkQ2xv
c2UoKTsKKworcHJpdmF0ZToKKyAgICBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lz
dGVtRmlsZUhhbmRsZSYsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcik7CisK
KyAgICBSZWY8RmlsZVN5c3RlbUZpbGVIYW5kbGU+IG1fc291cmNlOworICAgIEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CisgICAgYm9vbCBtX2lzQ2xv
c2VkIHsgZmFsc2UgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjExMjA2NGE2ZGY2MTFj
NDEyMWUyNWM3MTAyZjAzMzAzY2U0NDk0YWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUu
aWRsCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEJ5U2V0dGlu
Zz1BY2Nlc3NIYW5kbGVFbmFibGVkLAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCisg
ICAgRXhwb3NlZD1EZWRpY2F0ZWRXb3JrZXIsCisgICAgU2VjdXJlQ29udGV4dAorXSBpbnRlcmZh
Y2UgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUgeworICAgIFByb21pc2U8dW5kZWZpbmVkPiB0
cnVuY2F0ZShbRW5mb3JjZVJhbmdlXSB1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSk7CisgICAgUHJv
bWlzZTx1bnNpZ25lZCBsb25nIGxvbmc+IGdldFNpemUoKTsKKyAgICBQcm9taXNlPHVuZGVmaW5l
ZD4gZmx1c2goKTsKKyAgICBQcm9taXNlPHVuZGVmaW5lZD4gY2xvc2UoKTsKK307CisKK2RpY3Rp
b25hcnkgRmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMgeworICAgIFtFbmZvcmNlUmFuZ2VdIHVu
c2lnbmVkIGxvbmcgbG9uZyBhdDsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzEzNTFiZjJkOTRlNWYzYTdl
NjFjNjk5Y2FiODI3YTE3OGI2MTc1ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50
aWZpZXIuaApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2VudW0gRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyVHlwZSB7IH07Cit1c2lu
ZyBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVy
PEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllclR5cGU+OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5jcHAKaW5kZXggNDVlYjNlYzk1Yjc2NTFlN2MxNWUzMGE2OTljNDc0YjY1NTJk
NDNjZC4uZmE3ZjY2OTM1NzE2MGI3OTFkYzI1YTFhMzIwODNkYTI2OTg1NjZiNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAgLTY0
LDcgKzY0LDcgQEAgdm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnNjb3Bl
Q2xvc2VkKCkKICAgICBmb3IgKGF1dG8mIGNhbGxiYWNrIDogZ2V0SGFuZGxlQ2FsbGJhY2tzLnZh
bHVlcygpKQogICAgICAgICBjYWxsYmFjayhFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9
KTsKIAotICAgIGF1dG8gcmVtb3ZlRW50cnlDYWxsYmFja3MgPSBzdGQ6OmV4Y2hhbmdlKG1fcmVt
b3ZlRW50cnlDYWxsYmFja3MsIHsgfSk7CisgICAgYXV0byByZW1vdmVFbnRyeUNhbGxiYWNrcyA9
IHN0ZDo6ZXhjaGFuZ2UobV92b2lkQ2FsbGJhY2tzLCB7IH0pOwogICAgIGZvciAoYXV0byYgY2Fs
bGJhY2sgOiByZW1vdmVFbnRyeUNhbGxiYWNrcy52YWx1ZXMoKSkKICAgICAgICAgY2FsbGJhY2so
RXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CiAKQEAgLTE0NywxOSArMTQ3LDE5IEBA
IHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpkaWRHZXRIYW5kbGUoQ2Fs
bGJhY2tJZGVudGlmaWVyIGNhbGxiYWNrCiAgICAgICAgIGNhbGxiYWNrKFdURk1vdmUocmVzdWx0
KSk7CiB9CiAKLXZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpyZW1vdmVF
bnRyeShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHksIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bjo6UmVtb3ZlRW50cnlDYWxsYmFjayYmIGNhbGxiYWNrKQordm9pZCBXb3JrZXJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb246OnJlbW92ZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
IGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwg
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJiBjYWxsYmFjaykKIHsK
ICAgICBpZiAoIW1fc2NvcGUpCiAgICAgICAgIHJldHVybiBjYWxsYmFjayhFeGNlcHRpb24geyBJ
bnZhbGlkU3RhdGVFcnJvciB9KTsKIAogICAgIGF1dG8gY2FsbGJhY2tJZGVudGlmaWVyID0gQ2Fs
bGJhY2tJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUoKTsKLSAgICBtX3JlbW92ZUVudHJ5
Q2FsbGJhY2tzLmFkZChjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUoY2FsbGJhY2spKTsKKyAg
ICBtX3ZvaWRDYWxsYmFja3MuYWRkKGNhbGxiYWNrSWRlbnRpZmllciwgV1RGTW92ZShjYWxsYmFj
aykpOwogCiAgICAgY2FsbE9uTWFpblRocmVhZChbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3JrZXJU
aHJlYWQgPSBSZWYgeyBtX3Njb3BlLT50aHJlYWQoKSB9LCBtYWluVGhyZWFkQ29ubmVjdGlvbiA9
IG1fbWFpblRocmVhZENvbm5lY3Rpb24sIGlkZW50aWZpZXIsIG5hbWUgPSBuYW1lLmlzb2xhdGVk
Q29weSgpLCBkZWxldGVSZWN1cnNpdmVseV0oKSBtdXRhYmxlIHsKICAgICAgICAgYXV0byBtYWlu
VGhyZWFkQ2FsbGJhY2sgPSBbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQgPSBXVEZN
b3ZlKHdvcmtlclRocmVhZCldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgICAgIHdv
cmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbY2FsbGJhY2tJZGVudGlmaWVy
LCByZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0KV0gKGF1dG8mIHNjb3BlKSBtdXRhYmxl
IHsKICAgICAgICAgICAgICAgICBpZiAoYXV0byBjb25uZWN0aW9uID0gZG93bmNhc3Q8V29ya2Vy
R2xvYmFsU2NvcGU+KHNjb3BlKS5maWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oKSkKLSAgICAg
ICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+ZGlkUmVtb3ZlRW50cnkoY2FsbGJhY2tJZGVudGlm
aWVyLCBXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLT5j
b21wbGV0ZVZvaWRDYWxsYmFjayhjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUocmVzdWx0KSk7
CiAgICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKICAgICAgICAg
fTsKIApAQCAtMTY3LDEyICsxNjcsNiBAQCB2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbjo6cmVtb3ZlRW50cnkoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaQogICAgIH0p
OwogfQogCi12b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6ZGlkUmVtb3Zl
RW50cnkoQ2FsbGJhY2tJZGVudGlmaWVyIGNhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8
dm9pZD4mJiByZXN1bHQpCi17Ci0gICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX3JlbW92ZUVudHJ5
Q2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJZGVudGlmaWVyKSkKLSAgICAgICAgY2FsbGJhY2soV1RG
TW92ZShyZXN1bHQpKTsKLX0KLQogdm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b246OnJlc29sdmUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgRmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIgb3RoZXJJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OlJlc29sdmVDYWxsYmFjayYmIGNhbGxiYWNrKQogewogICAgIGlmICghbV9zY29w
ZSkKQEAgLTE5OSw0ICsxOTMsMTIyIEBAIHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpkaWRSZXNvbHZlKENhbGxiYWNrSWRlbnRpZmllciBjYWxsYmFja0lkCiAgICAgICAg
IGNhbGxiYWNrKFdURk1vdmUocmVzdWx0KSk7CiB9CiAKK3ZvaWQgV29ya2VyRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpkaWRDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKENhbGxiYWNrSWRlbnRp
ZmllciBjYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlSWRlbnRpZmllcj4mJiByZXN1bHQpCit7CisgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBt
X2dldEFjY2Vzc0hhbmRsQ2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJZGVudGlmaWVyKSkKKyAgICAg
ICAgY2FsbGJhY2soV1RGTW92ZShyZXN1bHQpKTsKK30KKwordm9pZCBXb3JrZXJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb246OmNvbXBsZXRlSW50ZWdlckNhbGxiYWNrKENhbGxiYWNrSWRlbnRp
ZmllciBjYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPHVpbnQ2NF90PiYmIHJlc3VsdCkK
K3sKKyAgICBpZiAoYXV0byBjYWxsYmFjayA9IG1faW50ZWdlckNhbGxiYWNrcy50YWtlKGNhbGxi
YWNrSWRlbnRpZmllcikpCisgICAgICAgIGNhbGxiYWNrKFdURk1vdmUocmVzdWx0KSk7Cit9CisK
K3ZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjb21wbGV0ZVZvaWRDYWxs
YmFjayhDYWxsYmFja0lkZW50aWZpZXIgY2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25Pcjx2
b2lkPiYmIHJlc3VsdCkKK3sKKyAgICBpZiAoYXV0byBjYWxsYmFjayA9IG1fdm9pZENhbGxiYWNr
cy50YWtlKGNhbGxiYWNrSWRlbnRpZmllcikpCisgICAgICAgIGNhbGxiYWNrKFdURk1vdmUocmVz
dWx0KSk7Cit9CisKK3ZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVh
dGVTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIs
IEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0QWNjZXNzSGFuZGxlQ2FsbGJhY2smJiBj
YWxsYmFjaykKK3sKKyAgICBpZiAoIW1fc2NvcGUpCisgICAgICAgIHJldHVybiBjYWxsYmFjayhF
eGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKworICAgIGF1dG8gY2FsbGJhY2tJZGVu
dGlmaWVyID0gQ2FsbGJhY2tJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUoKTsKKyAgICBt
X2dldEFjY2Vzc0hhbmRsQ2FsbGJhY2tzLmFkZChjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUo
Y2FsbGJhY2spKTsKKworICAgIGNhbGxPbk1haW5UaHJlYWQoW2NhbGxiYWNrSWRlbnRpZmllciwg
d29ya2VyVGhyZWFkID0gUmVmIHsgbV9zY29wZS0+dGhyZWFkKCkgfSwgbWFpblRocmVhZENvbm5l
Y3Rpb24gPSBtX21haW5UaHJlYWRDb25uZWN0aW9uLCBpZGVudGlmaWVyXSgpIG11dGFibGUgewor
ICAgICAgICBhdXRvIG1haW5UaHJlYWRDYWxsYmFjayA9IFtjYWxsYmFja0lkZW50aWZpZXIsIHdv
cmtlclRocmVhZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKV0oYXV0byByZXN1bHQpIG11dGFibGUg
eworICAgICAgICAgICAgd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFtj
YWxsYmFja0lkZW50aWZpZXIsIHJlc3VsdCA9IGNyb3NzVGhyZWFkQ29weShyZXN1bHQpXSAoYXV0
byYgc2NvcGUpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGlmIChhdXRvIGNvbm5lY3Rpb24g
PSBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oc2NvcGUpLmZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbigpKQorICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLT5kaWRDcmVhdGVTeW5j
QWNjZXNzSGFuZGxlKGNhbGxiYWNrSWRlbnRpZmllciwgV1RGTW92ZShyZXN1bHQpKTsKKyAgICAg
ICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOworICAgICAgICB9OworCisg
ICAgICAgIG1haW5UaHJlYWRDb25uZWN0aW9uLT5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlKGlkZW50
aWZpZXIsIFdURk1vdmUobWFpblRocmVhZENhbGxiYWNrKSk7CisgICAgfSk7Cit9CisKK3ZvaWQg
V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpnZXRTaXplKEZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRp
ZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246
OkludGVnZXJDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIGlmICghbV9zY29wZSkKKyAgICAg
ICAgcmV0dXJuIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOworCisg
ICAgYXV0byBjYWxsYmFja0lkZW50aWZpZXIgPSBDYWxsYmFja0lkZW50aWZpZXI6OmdlbmVyYXRl
VGhyZWFkU2FmZSgpOworICAgIG1faW50ZWdlckNhbGxiYWNrcy5hZGQoY2FsbGJhY2tJZGVudGlm
aWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisKKyAgICBjYWxsT25NYWluVGhyZWFkKFtjYWxsYmFj
a0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFJlZiB7IG1fc2NvcGUtPnRocmVhZCgpIH0sIG1h
aW5UaHJlYWRDb25uZWN0aW9uID0gbV9tYWluVGhyZWFkQ29ubmVjdGlvbiwgaWRlbnRpZmllciwg
YWNjZXNzSGFuZGxlSWRlbnRpZmllcl0oKSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byBtYWluVGhy
ZWFkQ2FsbGJhY2sgPSBbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQgPSBXVEZNb3Zl
KHdvcmtlclRocmVhZCldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgICAgIHdvcmtl
clRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbY2FsbGJhY2tJZGVudGlmaWVyLCBy
ZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0KV0gKGF1dG8mIHNjb3BlKSBtdXRhYmxlIHsK
KyAgICAgICAgICAgICAgICBpZiAoYXV0byBjb25uZWN0aW9uID0gZG93bmNhc3Q8V29ya2VyR2xv
YmFsU2NvcGU+KHNjb3BlKS5maWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oKSkKKyAgICAgICAg
ICAgICAgICAgICAgY29ubmVjdGlvbi0+Y29tcGxldGVJbnRlZ2VyQ2FsbGJhY2soY2FsbGJhY2tJ
ZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAgICAgfSwgV29ya2VyUnVuTG9v
cDo6ZGVmYXVsdE1vZGUoKSk7CisgICAgICAgIH07CisKKyAgICAgICAgbWFpblRocmVhZENvbm5l
Y3Rpb24tPmdldFNpemUoaWRlbnRpZmllciwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV1RGTW92
ZShtYWluVGhyZWFkQ2FsbGJhY2spKTsKKyAgICB9KTsKK30KKwordm9pZCBXb3JrZXJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb246OnRydW5jYXRlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
IGlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NI
YW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXplLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b246OlZvaWRDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIGlmICghbV9zY29wZSkKKyAgICAg
ICAgcmV0dXJuIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOworCisg
ICAgYXV0byBjYWxsYmFja0lkZW50aWZpZXIgPSBDYWxsYmFja0lkZW50aWZpZXI6OmdlbmVyYXRl
VGhyZWFkU2FmZSgpOworICAgIG1fdm9pZENhbGxiYWNrcy5hZGQoY2FsbGJhY2tJZGVudGlmaWVy
LCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisKKyAgICBjYWxsT25NYWluVGhyZWFkKFtjYWxsYmFja0lk
ZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFJlZiB7IG1fc2NvcGUtPnRocmVhZCgpIH0sIG1haW5U
aHJlYWRDb25uZWN0aW9uID0gbV9tYWluVGhyZWFkQ29ubmVjdGlvbiwgaWRlbnRpZmllciwgYWNj
ZXNzSGFuZGxlSWRlbnRpZmllciwgc2l6ZV0oKSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byBtYWlu
VGhyZWFkQ2FsbGJhY2sgPSBbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQgPSBXVEZN
b3ZlKHdvcmtlclRocmVhZCldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgICAgIHdv
cmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbY2FsbGJhY2tJZGVudGlmaWVy
LCByZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0KV0gKGF1dG8mIHNjb3BlKSBtdXRhYmxl
IHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBjb25uZWN0aW9uID0gZG93bmNhc3Q8V29ya2Vy
R2xvYmFsU2NvcGU+KHNjb3BlKS5maWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oKSkKKyAgICAg
ICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+Y29tcGxldGVWb2lkQ2FsbGJhY2soY2FsbGJhY2tJ
ZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAgICAgfSwgV29ya2VyUnVuTG9v
cDo6ZGVmYXVsdE1vZGUoKSk7CisgICAgICAgIH07CisKKyAgICAgICAgbWFpblRocmVhZENvbm5l
Y3Rpb24tPnRydW5jYXRlKGlkZW50aWZpZXIsIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHNpemUs
IFdURk1vdmUobWFpblRocmVhZENhbGxiYWNrKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV29ya2Vy
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpmbHVzaChGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNj
ZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2Fs
bGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBpZiAoIW1fc2NvcGUpCisgICAgICAgIHJldHVybiBj
YWxsYmFjayhFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKworICAgIGF1dG8gY2Fs
bGJhY2tJZGVudGlmaWVyID0gQ2FsbGJhY2tJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUo
KTsKKyAgICBtX3ZvaWRDYWxsYmFja3MuYWRkKGNhbGxiYWNrSWRlbnRpZmllciwgV1RGTW92ZShj
YWxsYmFjaykpOworCisgICAgY2FsbE9uTWFpblRocmVhZChbY2FsbGJhY2tJZGVudGlmaWVyLCB3
b3JrZXJUaHJlYWQgPSBSZWYgeyBtX3Njb3BlLT50aHJlYWQoKSB9LCBtYWluVGhyZWFkQ29ubmVj
dGlvbiA9IG1fbWFpblRocmVhZENvbm5lY3Rpb24sIGlkZW50aWZpZXIsIGFjY2Vzc0hhbmRsZUlk
ZW50aWZpZXJdKCkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8gbWFpblRocmVhZENhbGxiYWNrID0g
W2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gV1RGTW92ZSh3b3JrZXJUaHJlYWQp
XShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxv
b3AoKS5wb3N0VGFza0Zvck1vZGUoW2NhbGxiYWNrSWRlbnRpZmllciwgcmVzdWx0ID0gY3Jvc3NU
aHJlYWRDb3B5KHJlc3VsdCldIChhdXRvJiBzY29wZSkgbXV0YWJsZSB7CisgICAgICAgICAgICAg
ICAgaWYgKGF1dG8gY29ubmVjdGlvbiA9IGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPihzY29w
ZSkuZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKCkpCisgICAgICAgICAgICAgICAgICAgIGNv
bm5lY3Rpb24tPmNvbXBsZXRlVm9pZENhbGxiYWNrKGNhbGxiYWNrSWRlbnRpZmllciwgV1RGTW92
ZShyZXN1bHQpKTsKKyAgICAgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkp
OworICAgICAgICB9OworCisgICAgICAgIG1haW5UaHJlYWRDb25uZWN0aW9uLT5mbHVzaChpZGVu
dGlmaWVyLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXVEZNb3ZlKG1haW5UaHJlYWRDYWxsYmFj
aykpOworICAgIH0pOworfQorCit2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bjo6Y2xvc2UoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Vm9pZENhbGxiYWNrJiYgY2FsbGJhY2spCit7CisgICAg
aWYgKCFtX3Njb3BlKQorICAgICAgICByZXR1cm4gY2FsbGJhY2soRXhjZXB0aW9uIHsgSW52YWxp
ZFN0YXRlRXJyb3IgfSk7CisKKyAgICBhdXRvIGNhbGxiYWNrSWRlbnRpZmllciA9IENhbGxiYWNr
SWRlbnRpZmllcjo6Z2VuZXJhdGVUaHJlYWRTYWZlKCk7CisgICAgbV92b2lkQ2FsbGJhY2tzLmFk
ZChjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUoY2FsbGJhY2spKTsKKworICAgIGNhbGxPbk1h
aW5UaHJlYWQoW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gUmVmIHsgbV9zY29w
ZS0+dGhyZWFkKCkgfSwgbWFpblRocmVhZENvbm5lY3Rpb24gPSBtX21haW5UaHJlYWRDb25uZWN0
aW9uLCBpZGVudGlmaWVyLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyXSgpIG11dGFibGUgeworICAg
ICAgICBhdXRvIG1haW5UaHJlYWRDYWxsYmFjayA9IFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtl
clRocmVhZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKV0oYXV0byByZXN1bHQpIG11dGFibGUgewor
ICAgICAgICAgICAgd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFtjYWxs
YmFja0lkZW50aWZpZXIsIHJlc3VsdCA9IGNyb3NzVGhyZWFkQ29weShyZXN1bHQpXSAoYXV0byYg
c2NvcGUpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGlmIChhdXRvIGNvbm5lY3Rpb24gPSBk
b3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oc2NvcGUpLmZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbigpKQorICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLT5jb21wbGV0ZVZvaWRDYWxs
YmFjayhjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUocmVzdWx0KSk7CisgICAgICAgICAgICB9
LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKKyAgICAgICAgfTsKKworICAgICAgICBt
YWluVGhyZWFkQ29ubmVjdGlvbi0+Y2xvc2UoaWRlbnRpZmllciwgYWNjZXNzSGFuZGxlSWRlbnRp
ZmllciwgV1RGTW92ZShtYWluVGhyZWFkQ2FsbGJhY2spKTsKKyAgICB9KTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5oCmluZGV4IGVjNjlkMTc1YTJmNzU5ZjA2YjNmMWM1NDc0NGQ3MTBjOWU2MWMz
YWMuLjkwY2JjYmY2NzNhNTg2ZjI3NDQyZjk2NDAzNDdhOTI1MjY1MGNmYzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTQ2LDggKzQ2
LDEwIEBAIHB1YmxpYzoKICAgICB1c2luZyBDYWxsYmFja0lkZW50aWZpZXIgPSBXb3JrZXJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb25DYWxsYmFja0lkZW50aWZpZXI7CiAgICAgdm9pZCBkaWRJ
c1NhbWVFbnRyeShDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPGJvb2w+JiYpOwogICAg
IHZvaWQgZGlkR2V0SGFuZGxlKENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXI+JiYpOwotICAgIHZvaWQgZGlkUmVtb3ZlRW50cnkoQ2FsbGJh
Y2tJZGVudGlmaWVyLCBFeGNlcHRpb25Pcjx2b2lkPiYmKTsKICAgICB2b2lkIGRpZFJlc29sdmUo
Q2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxWZWN0b3I8U3RyaW5nPj4mJik7CisgICAg
dm9pZCBkaWRDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0
aW9uT3I8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyPiYmIHJlc3VsdCk7Cisg
ICAgdm9pZCBjb21wbGV0ZVZvaWRDYWxsYmFjayhDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlv
bk9yPHZvaWQ+JiYgcmVzdWx0KTsKKyAgICB2b2lkIGNvbXBsZXRlSW50ZWdlckNhbGxiYWNrKENh
bGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8dWludDY0X3Q+JiYgcmVzdWx0KTsKIAogcHJp
dmF0ZToKICAgICBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oV29ya2VyR2xvYmFs
U2NvcGUmLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsKQEAgLTU2LDE1ICs1
OCwyMyBAQCBwcml2YXRlOgogICAgIHZvaWQgaXNTYW1lRW50cnkoRmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OlNhbWVFbnRyeUNhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgZ2V0RmlsZUhh
bmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29s
IGNyZWF0ZUlmTmVjZXNzYXJ5LCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhhbmRs
ZUNhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgZ2V0RGlyZWN0b3J5SGFuZGxlKEZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNl
c3NhcnksIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0SGFuZGxlQ2FsbGJhY2smJikg
ZmluYWw7Ci0gICAgdm9pZCByZW1vdmVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb246OlJlbW92ZUVudHJ5Q2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBy
ZW1vdmVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1l
LCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZv
aWRDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIHJlc29sdmUoRmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OlJlc29sdmVDYWxsYmFjayYmKSBmaW5hbDsKIAorICAgIHZvaWQgY3JlYXRlU3lu
Y0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOjpHZXRBY2Nlc3NIYW5kbGVDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lk
IGdldFNpemUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpJbnRlZ2VyQ2Fs
bGJhY2smJikgZmluYWw7CisgICAgdm9pZCB0cnVuY2F0ZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXpl
LCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmKSBmaW5hbDsKKyAg
ICB2b2lkIGZsdXNoKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Vm9pZENh
bGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgY2xvc2UoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJikgZmluYWw7CisKICAgICBXZWFrUHRyPFdvcmtl
ckdsb2JhbFNjb3BlPiBtX3Njb3BlOwogICAgIFJlZlB0cjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24+IG1fbWFpblRocmVhZENvbm5lY3Rpb247CiAgICAgSGFzaE1hcDxDYWxsYmFja0lkZW50
aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6U2FtZUVudHJ5Q2FsbGJhY2s+IG1f
c2FtZUVudHJ5Q2FsbGJhY2tzOwogICAgIEhhc2hNYXA8Q2FsbGJhY2tJZGVudGlmaWVyLCBGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhhbmRsZUNhbGxiYWNrPiBtX2dldEhhbmRsZUNh
bGxiYWNrczsKLSAgICBIYXNoTWFwPENhbGxiYWNrSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOjpSZW1vdmVFbnRyeUNhbGxiYWNrPiBtX3JlbW92ZUVudHJ5Q2FsbGJhY2tz
OwogICAgIEhhc2hNYXA8Q2FsbGJhY2tJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb246OlJlc29sdmVDYWxsYmFjaz4gbV9yZXNvbHZlQ2FsbGJhY2tzOworICAgIEhhc2hNYXA8
Q2FsbGJhY2tJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEFjY2Vz
c0hhbmRsZUNhbGxiYWNrPiBtX2dldEFjY2Vzc0hhbmRsQ2FsbGJhY2tzOworICAgIEhhc2hNYXA8
Q2FsbGJhY2tJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxs
YmFjaz4gbV92b2lkQ2FsbGJhY2tzOworICAgIEhhc2hNYXA8Q2FsbGJhY2tJZGVudGlmaWVyLCBG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkludGVnZXJDYWxsYmFjaz4gbV9pbnRlZ2VyQ2Fs
bGJhY2tzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCAx
ZWZmNmFlYjM5YmEwMmE3MzVmMjE0YzM0ZmQ3MGMxMDMzZTkzZjEwLi45Mzk3ODFkMDMxNDlhNzlj
MGVlNDdkZmIyZTA5YjgwZTkyZWZlMDgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtNjEsNiArNjEsNyBA
QCBNb2R1bGVzL2ZldGNoL1dpbmRvd09yV29ya2VyR2xvYmFsU2NvcGVGZXRjaC5jcHAKIE1vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmNwcAogTW9kdWxl
cy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcAogTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuY3BwCitNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwCiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcAogTW9kdWxlcy9nZW9sb2Nh
dGlvbi9HZW9Ob3RpZmllci5jcHAKIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3Bw
CkBAIC0zMDQ2LDYgKzMwNDcsNyBAQCBKU0ZpbGVTeXN0ZW1FbnRyeUNhbGxiYWNrLmNwcAogSlNG
aWxlU3lzdGVtRmlsZUVudHJ5LmNwcAogSlNGaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKIEpTRmls
ZVN5c3RlbUhhbmRsZS5jcHAKK0pTRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwCiBKU0Zp
bGxNb2RlLmNwcAogSlNGb2N1c0V2ZW50LmNwcAogSlNGb2N1c09wdGlvbnMuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjE0
YzNkNzBjMmNiMTNkZmMxYzIwY2IyNjA4NTI2NzBmNGVkN2U1YS4uNTI1YmJhYjFlMDA4MWVjMDMy
ZTJhYmQyMjViMmI1Y2EyMWVmZDliZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjgxMCw2ICsyODEwLDcgQEAKIAkJOTMwQUFD
OUEyNTBFQjg0OTAwMTNEQTlGIC8qIENTU0NvbmRpdGlvblJ1bGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMEFBQzk4MjUwRUI4MTcwMDEzREE5RiAv
KiBDU1NDb25kaXRpb25SdWxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJOTMwQUFDOUYyNTBFRDQwOTAwMTNEQTlGIC8qIEpTQ1NTQ29uZGl0aW9u
UnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMw
QUFDOUQyNTBFRDQwOTAwMTNEQTlGIC8qIEpTQ1NTQ29uZGl0aW9uUnVsZS5oICovOyB9OwogCQk5
MzBBQUNBMjI1MEVENDExMDAxM0RBOUYgLyogSlNDU1NHcm91cGluZ1J1bGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMEFBQ0EwMjUwRUQ0MTEwMDEz
REE5RiAvKiBKU0NTU0dyb3VwaW5nUnVsZS5oICovOyB9OworCQk5MzBFNDQ4NjI3MEMzNzIyMDBE
RTdBQjcgLyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzBFNDQ4NDI3MEMzNzIxMDBE
RTdBQjcgLyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTMxNTNCREExNDE4MUY3
QTAwRkNGNUJFIC8qIG1pc3NpbmdJbWFnZUAyeC5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMTUzQkQ5MTQxODFGN0EwMEZDRjVCRSAvKiBtaXNz
aW5nSW1hZ2VAMngucG5nICovOyB9OwogCQk5MzE1M0JEQzE0MTk1OUJDMDBGQ0Y1QkUgLyogdGV4
dEFyZWFSZXNpemVDb3JuZXIucG5nIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MzE1M0JEQjE0MTk1OUJCMDBGQ0Y1QkUgLyogdGV4dEFyZWFSZXNpemVD
b3JuZXIucG5nICovOyB9OwogCQk5MzE1M0JFMjE0MTk1QTU3MDBGQ0Y1QkUgLyogbWlzc2luZ0lt
YWdlLnBuZyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTMxNTNCRTExNDE5NUE1NzAwRkNGNUJFIC8qIG1pc3NpbmdJbWFnZS5wbmcgKi87IH07CkBAIC0y
OTYzLDYgKzI5NjQsNyBAQAogCQk5M0Q2QjdBODI1NTFENDFGMDA1OEREM0EgLyogRHVtbXlTcGVl
Y2hSZWNvZ25pdGlvblByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5M0Q2QjdBNjI1NTFEM0VEMDA1OEREM0EgLyogRHVtbXlTcGVlY2hSZWNv
Z25pdGlvblByb3ZpZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJOTNEOUQ1M0MwREEyN0UxODAwNzcyMTZDIC8qIFJhbmdlQm91bmRhcnlQb2lu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNEOUQ1
M0IwREEyN0UxODAwNzcyMTZDIC8qIFJhbmdlQm91bmRhcnlQb2ludC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRTI0MUZGMEIyQjRFNDAwMEM3
MzJBMSAvKiBIVE1MRnJhbWVPd25lckVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTI0MUZFMEIyQjRFNDAwMEM3MzJBMSAvKiBIVE1MRnJh
bWVPd25lckVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQk5M0UyNjlBMjI3MEE1RDVEMDAyQzRGRjAgLyogRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzRTI2OTlGMjcwQTVENUMwMDJDNEZGMCAvKiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRTJB
MzA3MTIzRTlEQzAwMDlGRTEyQSAvKiBIVE1MUGFyc2VySWRpb21zLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0UyQTMwNTEyM0U5REMwMDA5RkUxMkEg
LyogSFRNTFBhcnNlcklkaW9tcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTkzRTVCMjY1MjQ1NUU5NkYwMDVDNTJEMCAvKiBBdHRyaWJ1dGVkU3Ry
aW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0U1
QjI2MzI0NTVFOTZGMDA1QzUyRDAgLyogQXR0cmlidXRlZFN0cmluZy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRjE5OEU1MDgyNDVFNTkwMDFF
OUFCQyAvKiBIVE1MRG9jdW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY1MjNEMjNDMDJERTQzOTYwMTg2MzVDQSAvKiBIVE1MRG9jdW1lbnQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTE2OTUs
NiArMTE2OTcsNyBAQAogCQk5MzBBQUNBMDI1MEVENDExMDAxM0RBOUYgLyogSlNDU1NHcm91cGlu
Z1J1bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDU1NHcm91cGluZ1J1
bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMwQUFDQTEyNTBFRDQxMTAwMTNE
QTlGIC8qIEpTQ1NTR3JvdXBpbmdSdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTQ1NTR3JvdXBpbmdSdWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTMwQzkwREMxOUNGOTY1MzAwRDZDMjFBIC8qIExlZ2FjeUlubGluZUl0ZXJhdG9yLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExlZ2FjeUlubGluZUl0ZXJh
dG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTMwRTQ0ODQyNzBDMzcyMTAw
REU3QUI3IC8qIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50
aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMxNTNCRDkxNDE4MUY3QTAw
RkNGNUJFIC8qIG1pc3NpbmdJbWFnZUAyeC5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSAibWlzc2luZ0ltYWdlQDJ4
LnBuZyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMTUzQkRCMTQxOTU5QkIwMEZD
RjVCRSAvKiB0ZXh0QXJlYVJlc2l6ZUNvcm5lci5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSB0ZXh0QXJlYVJlc2l6
ZUNvcm5lci5wbmc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMTUzQkUxMTQxOTVB
NTcwMEZDRjVCRSAvKiBtaXNzaW5nSW1hZ2UucG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRoID0gbWlzc2luZ0ltYWdlLnBu
Zzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExOTk0LDYgKzExOTk3LDkgQEAKIAkJ
OTNFMjI3REYwQUY1ODlBRDAwRDQ4MzI0IC8qIFN1YnJlc291cmNlTG9hZGVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN1YnJlc291cmNlTG9hZGVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNFMjQxRkUwQjJCNEU0MDAwQzczMkExIC8qIEhU
TUxGcmFtZU93bmVyRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBI
VE1MRnJhbWVPd25lckVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNF
MjQyNUUwQjJCNTA5NTAwQzczMkExIC8qIEhUTUxGcmFtZU93bmVyRWxlbWVudC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MRnJhbWVPd25lckVsZW1lbnQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0UyNjk5RDI3MEE1RDVCMDAyQzRGRjAg
LyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTNFMjY5OUYyNzBBNUQ1QzAwMkM0RkYwIC8qIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRTI2OUEwMjcwQTVE
NUMwMDJDNEZGMCAvKiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRTJBMzA0MTIzRTlEQzAwMDlGRTEyQSAv
KiBIVE1MUGFyc2VySWRpb21zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEhUTUxQYXJzZXJJZGlvbXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
M0UyQTMwNTEyM0U5REMwMDA5RkUxMkEgLyogSFRNTFBhcnNlcklkaW9tcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MUGFyc2VySWRpb21zLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTkzRTVCMjU0MjQ1MzZCMUUwMDVDNTJEMCAvKiBVUkxEZWNvbXBvc2l0
aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVSTERlY29tcG9z
aXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjM0MzgsNiArMjM0NDQs
MTAgQEAKIAkJCQk5MzJDOUJEOTI2REQ2MjYwMDA1M0IzREIgLyogRmlsZVN5c3RlbUhhbmRsZS5p
ZGwgKi8sCiAJCQkJOTM1NDI0MjcyNzAzQkM4ODAwNUNBNzJDIC8qIEZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyLmggKi8sCiAJCQkJOTM1NDI0MjkyNzAzQkNBRDAwNUNBNzJDIC8qIEZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5oICovLAorCQkJCTkzRTI2OUEwMjcwQTVENUMwMDJDNEZGMCAv
KiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAgKi8sCisJCQkJOTNFMjY5OUYyNzBBNUQ1
QzAwMkM0RkYwIC8qIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmggKi8sCisJCQkJOTNFMjY5
OUQyNzBBNUQ1QjAwMkM0RkYwIC8qIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbCAqLywK
KwkJCQk5MzBFNDQ4NDI3MEMzNzIxMDBERTdBQjcgLyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLmggKi8sCiAJCQkJOTM0NDNFN0IyNkU4QTZCQzAwNTg1MzhGIC8qIFN0b3Jh
Z2VNYW5hZ2VyK0ZpbGVTeXN0ZW1BY2Nlc3MuaWRsICovLAogCQkJCTkzNDQzRTdEMjZFOEE2QkMw
MDU4NTM4RiAvKiBTdG9yYWdlTWFuYWdlckZpbGVTeXN0ZW1BY2Nlc3MuaCAqLywKIAkJCQk5MzIz
M0M4NTI3MDU0Qzc4MDBCQkY0MUUgLyogV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
LmNwcCAqLywKQEAgLTMyNTYwLDYgKzMyNTcwLDggQEAKIAkJCQk5MzQ0M0U4ODI2RTk5NUM0MDA1
ODUzOEYgLyogRmlsZVN5c3RlbUhhbmRsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM1NDI0MkYy
NzAzQ0E1MTAwNUNBNzJDIC8qIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5MzU0MjQzMDI3MDNDQjg2MDA1Q0E3MkMgLyogRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0UyNjlBMjI3MEE1RDVEMDAyQzRGRjAg
LyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzMEU0
NDg2MjcwQzM3MjIwMERFN0FCNyAvKiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNUVCNjlGMEU4MURBRUIwMEIyNTk2NSAvKiBGaWxs
TGF5ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTcxMkJFNDgzMUZFODY1REQwMDIwMzFDQyAvKiBG
aWxsTW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODQ1RTcyRjgwRkQyNjFFRTAwQTg3RDc5IC8q
IEZpbHRlci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5kZXggZTgzNWRmN2ZmMGIyMjBkZWJhMDU4ZmQzYTg0
ZGY1ZDJjMjUxMzk1Yy4uMmJiOWE5MzliZmNiNmE5NzU4ODYyZjc4ODU2NmU3MmMwNGEwZTcwNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1l
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMu
aApAQCAtMTI0LDYgKzEyNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhGaWxl
U3lzdGVtRmlsZUVudHJ5KSBcCiAgICAgbWFjcm8oRmlsZVN5c3RlbUZpbGVIYW5kbGUpIFwKICAg
ICBtYWNybyhGaWxlU3lzdGVtSGFuZGxlKSBcCisgICAgbWFjcm8oRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGUpIFwKICAgICBtYWNybyhHYW1lcGFkKSBcCiAgICAgbWFjcm8oR2FtZXBhZEJ1dHRv
bikgXAogICAgIG1hY3JvKEdhbWVwYWRFdmVudCkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUVycm9yLmgK
aW5kZXggNDQzYzk1MTRjZDkzMjkxM2RkZTM0YzI3ZjZiNWI1NzIwMWEwYTQxZi4uMjg4MjQ0Zjhk
ZjBiYTRjNGUxYjdiMzgwZDM2MDkyZDM1YjBiNGM4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VFcnJv
ci5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSA8V2ViQ29y
ZS9FeGNlcHRpb25Db2RlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9FeGNlcHRpb25Pci5oPgogI2lu
Y2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMzQsMjYg
KzM0LDM3IEBAIGVudW0gY2xhc3MgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvciA6IHVpbnQ4X3Qgewog
ICAgIEZpbGVOb3RGb3VuZCwKICAgICBJbnZhbGlkTmFtZSwKICAgICBJbnZhbGlkTW9kaWZpY2F0
aW9uLAorICAgIEludmFsaWRTdGF0ZSwKICAgICBUeXBlTWlzbWF0Y2gsCiAgICAgVW5rbm93bgog
fTsKIAotaW5saW5lIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgY29udmVydFRvRXhjZXB0aW9uQ29k
ZShGaWxlU3lzdGVtU3RvcmFnZUVycm9yIGVycm9yKQoraW5saW5lIFdlYkNvcmU6OkV4Y2VwdGlv
biBjb252ZXJ0VG9FeGNlcHRpb24oRmlsZVN5c3RlbVN0b3JhZ2VFcnJvciBlcnJvcikKIHsKICAg
ICBzd2l0Y2ggKGVycm9yKSB7CiAgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpGaWxl
Tm90Rm91bmQ6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpFeGNlcHRpb25Db2RlOjpOb3RGb3Vu
ZEVycm9yOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6Tm90
Rm91bmRFcnJvciB9OwogICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxpZE1v
ZGlmaWNhdGlvbjoKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGU6OkludmFs
aWRNb2RpZmljYXRpb25FcnJvcjsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbiB7
IFdlYkNvcmU6OkludmFsaWRNb2RpZmljYXRpb25FcnJvciB9OwogICAgIGNhc2UgRmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvcjo6VHlwZU1pc21hdGNoOgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhj
ZXB0aW9uQ29kZTo6VHlwZUVycm9yOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9u
IHsgV2ViQ29yZTo6VHlwZUVycm9yIH07CiAgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9y
OjpJbnZhbGlkTmFtZToKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGU6OlVu
a25vd25FcnJvcjsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6
OlVua25vd25FcnJvciwgIk5hbWUgaXMgaW52YWxpZCIgfTsKKyAgICBjYXNlIEZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I6OkludmFsaWRTdGF0ZToKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2Vw
dGlvbiB7IFdlYkNvcmU6OkludmFsaWRTdGF0ZUVycm9yIH07CiAgICAgY2FzZSBGaWxlU3lzdGVt
U3RvcmFnZUVycm9yOjpVbmtub3duOgogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICByZXR1
cm4gV2ViQ29yZTo6RXhjZXB0aW9uQ29kZTo6VW5rbm93bkVycm9yOworICAgIHJldHVybiBXZWJD
b3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpVbmtub3duRXJyb3IgfTsKK30KKworaW5saW5lIFdl
YkNvcmU6OkV4Y2VwdGlvbk9yPHZvaWQ+IGNvbnZlcnRUb0V4Y2VwdGlvbk9yKHN0ZDo6b3B0aW9u
YWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gZXJyb3IpCit7CisgICAgaWYgKCFlcnJvcikKKyAg
ICAgICAgcmV0dXJuIHsgfTsKKworICAgIHJldHVybiBjb252ZXJ0VG9FeGNlcHRpb24oKmVycm9y
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkBAIC02Niw2ICs3Nyw3IEBAIHRlbXBsYXRl
PD4gc3RydWN0IEVudW1UcmFpdHM8V2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiB7CiAg
ICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6RmlsZU5vdEZvdW5kLAogICAg
ICAgICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWROYW1lLAogICAgICAg
ICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWRNb2RpZmljYXRpb24sCisg
ICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxpZFN0YXRlLAogICAg
ICAgICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlR5cGVNaXNtYXRjaCwKICAgICAg
ICAgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duCiAgICAgPjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmls
ZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3BwCmluZGV4IDIyYmMzZWY0ZWQyNzhhMTllMjQwNmM3OTQw
Y2ZiNmM4MzhkOTJkZWMuLmM4YTAxNDEzY2IzMzE5NjUzYThlYjdlNzJmMWVlYzM0ODNjNmE2OWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAj
aW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oIgogI2luY2x1ZGUgIkZpbGVTeXN0ZW1T
dG9yYWdlTWFuYWdlci5oIgorI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIApAQCAtMTM5LDQgKzE0MCw3OSBAQCBFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgRmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OnJlc29sdgogICAg
IHJldHVybiByZXN0UGF0aC5zcGxpdChwYXRoU2VwYXJhdG9yKTsKIH0KIAorRXhwZWN0ZWQ8V2Vi
Q29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRs
ZSgpCit7CisgICAgaWYgKCFtX21hbmFnZXIpCisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3Rl
ZChGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duKTsKKworICAgIGJvb2wgYWNxdWlyZWQg
PSBtX21hbmFnZXItPmFjcXVpcmVMb2NrRm9yRmlsZShtX3BhdGgsIG1faWRlbnRpZmllcik7Cisg
ICAgaWYgKCFhY3F1aXJlZCkKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I6OkludmFsaWRTdGF0ZSk7CisKKyAgICBBU1NFUlQoIW1fYWN0aXZlU3lu
Y0FjY2Vzc0hhbmRsZSk7CisgICAgbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlID0gV2ViQ29yZTo6
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUo
KTsKKyAgICByZXR1cm4gKm1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZTsKK30KKworRXhwZWN0ZWQ8
dWludDY0X3QsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxl
OjpnZXRTaXplKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBh
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyKQoreworICAgIGlmICghbV9tYW5hZ2VyKQorICAgICAgICBy
ZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bik7CisK
KyAgICBpZiAoIW1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSB8fCAqbV9hY3RpdmVTeW5jQWNjZXNz
SGFuZGxlICE9IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpCisgICAgICAgIHJldHVybiBtYWtlVW5l
eHBlY3RlZChGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duKTsKKworICAgIGF1dG8gc2l6
ZSA9IEZpbGVTeXN0ZW06OmZpbGVTaXplKG1fcGF0aCk7CisgICAgaWYgKCFzaXplKQorICAgICAg
ICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bik7
CisKKyAgICByZXR1cm4gc2l6ZS52YWx1ZSgpOworfQorCitzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjp0cnVuY2F0ZShXZWJDb3Jl
OjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRp
ZmllciwgdWludDY0X3Qgc2l6ZSkKK3sKKyAgICBpZiAoIW1fbWFuYWdlcikKKyAgICAgICAgcmV0
dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd247CisKKyAgICBpZiAoIW1fYWN0aXZl
U3luY0FjY2Vzc0hhbmRsZSB8fCAqbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlICE9IGFjY2Vzc0hh
bmRsZUlkZW50aWZpZXIpCisgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpV
bmtub3duOworCisgICAgYXV0byBoYW5kbGUgPSBGaWxlU3lzdGVtOjpvcGVuRmlsZShtX3BhdGgs
IEZpbGVTeXN0ZW06OkZpbGVPcGVuTW9kZTo6UmVhZFdyaXRlKTsKKyAgICBhdXRvIGNsb3NlRmls
ZVNjb3BlID0gbWFrZVNjb3BlRXhpdChbJl0geworICAgICAgICBGaWxlU3lzdGVtOjpjbG9zZUZp
bGUoaGFuZGxlKTsKKyAgICB9KTsKKworICAgIGF1dG8gcmVzdWx0ID0gRmlsZVN5c3RlbTo6dHJ1
bmNhdGVGaWxlKGhhbmRsZSwgc2l6ZSk7CisgICAgaWYgKCFyZXN1bHQpCisgICAgICAgIHJldHVy
biBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOworCisgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKK30KKworc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZTo6Zmx1c2goV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpCit7CisgICAgaWYgKCFtX21hbmFn
ZXIpCisgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOworCisg
ICAgaWYgKCFtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgfHwgKm1fYWN0aXZlU3luY0FjY2Vzc0hh
bmRsZSAhPSBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKQorICAgICAgICByZXR1cm4gRmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvcjo6VW5rbm93bjsKKworICAgIC8vIEZJWE1FOiB3aGVuIHdyaXRlIG9wZXJh
dGlvbiBpcyBpbXBsZW1lbnRlZCwgcGVyZm9ybSBhY3R1YWwgZmx1c2ggaGVyZS4KKyAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworfQorCitzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpjbG9zZShXZWJDb3JlOjpGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllcikKK3sKKyAgICBp
ZiAoIW1fbWFuYWdlcikKKyAgICAgICAgcmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVu
a25vd247CisKKyAgICBpZiAoIW1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSB8fCAqbV9hY3RpdmVT
eW5jQWNjZXNzSGFuZGxlICE9IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpCisgICAgICAgIHJldHVy
biBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOworCisgICAgbV9tYW5hZ2VyLT5yZWxl
YXNlTG9ja0ZvckZpbGUobV9wYXRoLCBtX2lkZW50aWZpZXIpOworICAgIG1fYWN0aXZlU3luY0Fj
Y2Vzc0hhbmRsZSA9IHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmggYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaAppbmRl
eCA4Nzk5MDkwN2Q5Yjg5YTUyM2Y3ZmYxZjU1MDcwYTU3MDY0MGFiM2IyLi5lNDdlZDNhMTZlZTk1
YWIxZDE0OTkzOGQxOTdmNjQ2M2Q5NzQ5MDE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUu
aApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUg
PFdlYkNvcmUvRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9X
ZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDksNiArNTAsMTIgQEAgcHVibGlj
OgogICAgIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVtb3ZlRW50cnko
Y29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5KTsKICAgICBFeHBlY3Rl
ZDxWZWN0b3I8U3RyaW5nPiwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzb2x2ZShXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcik7CiAKKyAgICBFeHBlY3RlZDxXZWJDb3JlOjpG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I+IGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKTsKKyAgICBFeHBlY3RlZDx1aW50NjRfdCwgRmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcj4gZ2V0U2l6ZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIpOworICAgIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcj4gdHJ1bmNhdGUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyLCB1aW50NjRfdCBzaXplKTsKKyAgICBzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I+IGZsdXNoKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
cik7CisgICAgc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBjbG9zZShXZWJD
b3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpOworCiBwcml2YXRlOgog
ICAgIEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lz
dGVtU3RvcmFnZUVycm9yPiByZXF1ZXN0Q3JlYXRlSGFuZGxlKElQQzo6Q29ubmVjdGlvbjo6VW5p
cXVlSUQsIFR5cGUsIFN0cmluZyYmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnkpOwogCkBA
IC01Nyw2ICs2NCw3IEBAIHByaXZhdGU6CiAgICAgVHlwZSBtX3R5cGU7CiAgICAgU3RyaW5nIG1f
cGF0aDsKICAgICBTdHJpbmcgbV9uYW1lOworICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyPiBtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5k
bGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFu
YWdlci5jcHAKaW5kZXggMWI3YTUxYTJmNjg4NDE1YzM5NmI1YjQ4ZmRjMDVmOTk1ZmM2ZDNkZS4u
YzM5NjUxYjkzMDkxMTJkZGQyMmQ4NTU5ZTY2MTAyZDRiZWEwYTc4MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0
ZW1TdG9yYWdlTWFuYWdlci5jcHAKQEAgLTg3LDE1ICs4NywyMSBAQCB2b2lkIEZpbGVTeXN0ZW1T
dG9yYWdlTWFuYWdlcjo6Y29ubmVjdGlvbkNsb3NlZChJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlE
IGNvbm5lYwogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgYXV0byBo
YW5kbGVzID0gbV9oYW5kbGVzQnlDb25uZWN0aW9uLmZpbmQoY29ubmVjdGlvbik7Ci0gICAgaWYg
KGhhbmRsZXMgPT0gbV9oYW5kbGVzQnlDb25uZWN0aW9uLmVuZCgpKQorICAgIGF1dG8gY29ubmVj
dGlvbkhhbmRsZXMgPSBtX2hhbmRsZXNCeUNvbm5lY3Rpb24uZmluZChjb25uZWN0aW9uKTsKKyAg
ICBpZiAoY29ubmVjdGlvbkhhbmRsZXMgPT0gbV9oYW5kbGVzQnlDb25uZWN0aW9uLmVuZCgpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBmb3IgKGF1dG8gaGFuZGxlSWRlbnRpZmllciA6IGhhbmRs
ZXMtPnZhbHVlKSB7Ci0gICAgICAgIGF1dG8gaGFuZGxlID0gbV9oYW5kbGVzLnRha2UoaGFuZGxl
SWRlbnRpZmllcik7Ci0gICAgICAgIG1fcmVnaXN0cnkudW5yZWdpc3RlckhhbmRsZShoYW5kbGVJ
ZGVudGlmaWVyKTsKKyAgICBhdXRvIGlkZW50aWZpZXJzID0gY29ubmVjdGlvbkhhbmRsZXMtPnZh
bHVlOworICAgIGZvciAoYXV0byBpZGVudGlmaWVyIDogaWRlbnRpZmllcnMpIHsKKyAgICAgICAg
YXV0byBoYW5kbGUgPSBtX2hhbmRsZXMudGFrZShpZGVudGlmaWVyKTsKKyAgICAgICAgbV9yZWdp
c3RyeS51bnJlZ2lzdGVySGFuZGxlKGlkZW50aWZpZXIpOwogICAgIH0KLSAgICBtX2hhbmRsZXNC
eUNvbm5lY3Rpb24ucmVtb3ZlKGhhbmRsZXMpOworCisgICAgbV9sb2NrTWFwLnJlbW92ZUlmKFsm
aWRlbnRpZmllcnNdKGF1dG8mIGVudHJ5KSB7CisgICAgICAgIHJldHVybiBpZGVudGlmaWVycy5j
b250YWlucyhlbnRyeS52YWx1ZSk7CisgICAgfSk7CisKKyAgICBtX2hhbmRsZXNCeUNvbm5lY3Rp
b24ucmVtb3ZlKGNvbm5lY3Rpb25IYW5kbGVzKTsKIH0KIAogRXhwZWN0ZWQ8V2ViQ29yZTo6Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0
ZW1TdG9yYWdlTWFuYWdlcjo6Z2V0RGlyZWN0b3J5KElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQg
Y29ubmVjdGlvbikKQEAgLTEwNSw0ICsxMTEsMjMgQEAgRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW0K
ICAgICByZXR1cm4gY3JlYXRlSGFuZGxlKGNvbm5lY3Rpb24sIEZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlOjpUeXBlOjpEaXJlY3RvcnksIFN0cmluZyB7IG1fcGF0aCB9LCB7IH0sIHRydWUpOwogfQog
Citib29sIEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlcjo6YWNxdWlyZUxvY2tGb3JGaWxlKGNvbnN0
IFN0cmluZyYgcGF0aCwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRp
ZmllcikKK3sKKyAgICBpZiAobV9sb2NrTWFwLmNvbnRhaW5zKHBhdGgpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICBtX2xvY2tNYXAuYWRkKHBhdGgsIGlkZW50aWZpZXIpOworICAgIHJl
dHVybiB0cnVlOworfQorCitib29sIEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlcjo6cmVsZWFzZUxv
Y2tGb3JGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBpZiAoYXV0byBsb2NrZWRCeUlkZW50aWZpZXIg
PSBtX2xvY2tNYXAuZ2V0KHBhdGgpOyBsb2NrZWRCeUlkZW50aWZpZXIgPT0gaWRlbnRpZmllcikg
eworICAgICAgICBtX2xvY2tNYXAucmVtb3ZlKHBhdGgpOworICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0
ZW1TdG9yYWdlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdl
L0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oCmluZGV4IDhiNDM4YjJlOTNkZjRhODQ0N2MzYjc3
NDBiYzU0Yzg3ZmNhNDMxOWYuLjFhZWJhOWRhZjc5NjhjNjhkOGZlOGIzYmU3YjY3NTUyODNkNzYx
MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxl
U3lzdGVtU3RvcmFnZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmgKQEAgLTQzLDEyICs0MywxNSBAQCBw
dWJsaWM6CiAgICAgY29uc3QgU3RyaW5nJiBnZXRQYXRoKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyKTsKICAgICB2b2lkIGNvbm5lY3Rpb25DbG9zZWQoSVBDOjpDb25uZWN0aW9u
OjpVbmlxdWVJRCk7CiAgICAgRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGdldERpcmVjdG9yeShJUEM6OkNvbm5lY3Rp
b246OlVuaXF1ZUlEKTsKKyAgICBib29sIGFjcXVpcmVMb2NrRm9yRmlsZShjb25zdCBTdHJpbmcm
IHBhdGgsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyKTsKKyAgICBib29sIHJl
bGVhc2VMb2NrRm9yRmlsZShjb25zdCBTdHJpbmcmIHBhdGgsIFdlYkNvcmU6OkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyKTsKIAogcHJpdmF0ZToKICAgICBTdHJpbmcgbV9wYXRoOwogICAgIEZp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkmIG1fcmVnaXN0cnk7CiAgICAgSGFzaE1hcDxJ
UEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlELCBIYXNoU2V0PFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyPj4gbV9oYW5kbGVzQnlDb25uZWN0aW9uOwogICAgIEhhc2hNYXA8V2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxGaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZT4+IG1faGFuZGxlczsKKyAgICBIYXNoTWFwPFN0cmluZywgV2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXI+IG1fbG9ja01hcDsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9y
YWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcAppbmRleCA2N2FlYmE1MjA2YTY2
MmM2MWQ5YjBlNTZkNTU5NTA5Y2IxMmE1MDI1Li4zNjg2MTc0MjgxODBkNzg0NmIyZDYyZjA2MGU5
OWU1ZGM3YTdkZDYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0
b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcApAQCAtMjI2LDUgKzIy
Niw2MCBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6cmVzb2x2ZShXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaQogICAgIGNvbXBsZXRpb25IYW5kbGVyKGhh
bmRsZS0+cmVzb2x2ZSh0YXJnZXRJZGVudGlmaWVyKSk7CiB9CiAKK3ZvaWQgTmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8
V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVt
U3RvcmFnZUVycm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgQVNTRVJUKCFSdW5M
b29wOjppc01haW4oKSk7CisKKyAgICBhdXRvIGhhbmRsZSA9IG1fZmlsZVN5c3RlbVN0b3JhZ2VI
YW5kbGVSZWdpc3RyeS0+Z2V0SGFuZGxlKGlkZW50aWZpZXIpOworICAgIGlmICghaGFuZGxlKQor
ICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIobWFrZVVuZXhwZWN0ZWQoRmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvcjo6VW5rbm93bikpOworCisgICAgY29tcGxldGlvbkhhbmRsZXIoaGFuZGxl
LT5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlKCkpOworfQorCit2b2lkIE5ldHdvcmtTdG9yYWdlTWFu
YWdlcjo6Z2V0U2l6ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChF
eHBlY3RlZDx1aW50NjRfdCwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQoreworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgYXV0byBo
YW5kbGUgPSBtX2ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnktPmdldEhhbmRsZShpZGVu
dGlmaWVyKTsKKyAgICBpZiAoIWhhbmRsZSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5k
bGVyKG1ha2VVbmV4cGVjdGVkKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24pKTsKKwor
ICAgIGNvbXBsZXRpb25IYW5kbGVyKGhhbmRsZS0+Z2V0U2l6ZShhY2Nlc3NIYW5kbGVJZGVudGlm
aWVyKSk7Cit9CisKK3ZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjp0cnVuY2F0ZUZvckFjY2Vz
c0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBX
ZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxl
SWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9w
dGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sK
KyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAgIGF1dG8gaGFuZGxlID0gbV9m
aWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5LT5nZXRIYW5kbGUoaWRlbnRpZmllcik7Cisg
ICAgaWYgKCFoYW5kbGUpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihGaWxlU3lz
dGVtU3RvcmFnZUVycm9yOjpVbmtub3duKTsKKworICAgIGNvbXBsZXRpb25IYW5kbGVyKGhhbmRs
ZS0+dHJ1bmNhdGUoYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgc2l6ZSkpOworfQorCit2b2lkIE5l
dHdvcmtTdG9yYWdlTWFuYWdlcjo6Zmx1c2hGb3JBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit7CisgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CisKKyAg
ICBhdXRvIGhhbmRsZSA9IG1fZmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeS0+Z2V0SGFu
ZGxlKGlkZW50aWZpZXIpOworICAgIGlmICghaGFuZGxlKQorICAgICAgICByZXR1cm4gY29tcGxl
dGlvbkhhbmRsZXIoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bik7CisKKyAgICBjb21w
bGV0aW9uSGFuZGxlcihoYW5kbGUtPmZsdXNoKGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpKTsKK30K
Kwordm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmNsb3NlQWNjZXNzSGFuZGxlKFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4p
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkp
OworCisgICAgYXV0byBoYW5kbGUgPSBtX2ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkt
PmdldEhhbmRsZShpZGVudGlmaWVyKTsKKyAgICBpZiAoIWhhbmRsZSkKKyAgICAgICAgcmV0dXJu
IGNvbXBsZXRpb25IYW5kbGVyKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24pOworCisg
ICAgY29tcGxldGlvbkhhbmRsZXIoaGFuZGxlLT5jbG9zZShhY2Nlc3NIYW5kbGVJZGVudGlmaWVy
KSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmggYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgK
aW5kZXggMWI4MTBkZjc4ZDczZDJmZjA5ZTg0ZGUyY2NiMjJiYTA2MTgwMTFjOC4uYTgxODg1MWZm
MTQ1Mzg2OGE3NGQxNzZmYjZjYjI4ZjIxYWIzMjMxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIu
aApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIk9yaWdpblN0b3JhZ2VNYW5hZ2VyLmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9DbGllbnRPcmlnaW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTY5LDYgKzcwLDExIEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBnZXREaXJlY3RvcnlIYW5kbGUoSVBDOjpDb25uZWN0aW9uJiwgV2ViQ29yZTo6RmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIsIFN0cmluZyYmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3Nhcnks
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAgICAgdm9pZCByZW1v
dmVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0
ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAgICB2b2lkIHJlc29s
dmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFZlY3Rv
cjxTdHJpbmc+LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOworICAgIHZvaWQgY3JlYXRl
U3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CisgICAgdm9p
ZCBnZXRTaXplRm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8dWludDY0X3QsIEZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I+KT4mJik7CisgICAgdm9pZCB0cnVuY2F0ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6
b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKKyAgICB2b2lkIGZsdXNoRm9y
QWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3Jl
OjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOworICAgIHZv
aWQgY2xvc2VBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIs
IFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7
CiAKICAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKICAgICBSZWY8V29ya1F1ZXVlPiBt
X3F1ZXVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdl
L05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXgg
NjJlNzQwM2NiYjcwMGFkOTZiYmViZTBmZWI4MjA1YzgxNjIyNGZmNy4uNGZlYTI3NjVmZDkyYTk4
MDYwY2QwNDAwNjJjNWU5NDU1YzgxOWZjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5h
Z2VyLm1lc3NhZ2VzLmluCkBAIC0zMiw0ICszMiwxMCBAQAogICAgIEdldERpcmVjdG9yeUhhbmRs
ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdHJpbmcg
bmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSkgLT4gKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJl
c3VsdCkgQXN5bmMgV2FudHNDb25uZWN0aW9uCiAgICAgUmVtb3ZlRW50cnkoV2ViQ29yZTo6Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nIG5hbWUsIGJvb2wgZGVs
ZXRlUmVjdXJzaXZlbHkpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6RmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvcj4gcmVzdWx0KSBBc3luYwogICAgIFJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIgdGFyZ2V0SWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBXZWJL
aXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKKworICAgIENyZWF0ZVN5
bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRp
ZmllcikgLT4gKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCisg
ICAgR2V0U2l6ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50
aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPHVpbnQ2NF90LCBXZWJL
aXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKKyAgICBUcnVuY2F0ZUZv
ckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlm
aWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNz
SGFuZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0
OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCisgICAgRmx1c2hGb3JBY2Nl
c3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwg
V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRs
ZUlkZW50aWZpZXIpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcj4gcmVzdWx0KSBBc3luYworICAgIENsb3NlQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSAtPiAoc3RkOjpv
cHRpb25hbDxXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IGVkOTRhM2VlNTY2
OGEzNDhiYzc2YWRiZDQyYjY1MDA3MWQxYjk1MWEuLjU5NmIzZmFiNjU4NjZiZGVmNTgxMjgwZDkx
MTYyMGMwNzRmNjdlZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5w
eQpAQCAtMjgyLDYgKzI4Miw3IEBAIGRlZiB0eXBlc190aGF0X2Nhbm5vdF9iZV9mb3J3YXJkX2Rl
Y2xhcmVkKCk6CiAgICAgICAgICdXZWJDb3JlOjpEcmFnQXBwbGljYXRpb25GbGFncycsCiAgICAg
ICAgICdXZWJDb3JlOjpGZXRjaElkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXInLAorICAgICAgICAnV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OkZyYW1lSWRlbnRpZmll
cicsCiAgICAgICAgICdXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMnLAogICAg
ICAgICAnV2ViQ29yZTo6SW1hZ2VEZWNvZGVySWRlbnRpZmllcicsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCmluZGV4IGIwNTRjOTIzOGJkZDJmY2Vj
ODEyOWIwMzA2YjUzYmJmYjFjN2RmOTMuLjdhMjM4YWNhNGMzOGQ2NzU1NGE3ZGE2M2VlN2RmZTI1
NmM3YmNkOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24uY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIHZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uOjpnZXRGaWxlSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVuCiAKICAgICBt
X2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VN
YW5hZ2VyOjpHZXRGaWxlSGFuZGxlKGlkZW50aWZpZXIsIG5hbWUsIGNyZWF0ZUlmTmVjZXNzYXJ5
KSwgW25hbWUsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcild
KGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFyZXN1bHQpCi0gICAgICAgICAg
ICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgY29udmVydFRv
RXhjZXB0aW9uQ29kZShyZXN1bHQuZXJyb3IoKSkgfSk7CisgICAgICAgICAgICByZXR1cm4gY29t
cGxldGlvbkhhbmRsZXIoY29udmVydFRvRXhjZXB0aW9uKHJlc3VsdC5lcnJvcigpKSk7CiAKICAg
ICAgICAgYXV0byBpZGVudGlmaWVyID0gcmVzdWx0LnZhbHVlKCk7CiAgICAgICAgIGlmICghaWRl
bnRpZmllci5pc1ZhbGlkKCkpCkBAIC04NCw3ICs4NCw3IEBAIHZvaWQgV2ViRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpnZXREaXJlY3RvcnlIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsCiAKICAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0
d29ya1N0b3JhZ2VNYW5hZ2VyOjpHZXREaXJlY3RvcnlIYW5kbGUoaWRlbnRpZmllciwgbmFtZSwg
Y3JlYXRlSWZOZWNlc3NhcnkpLCBbbmFtZSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKV0oYXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAoIXJl
c3VsdCkKLSAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNl
cHRpb24geyBjb252ZXJ0VG9FeGNlcHRpb25Db2RlKHJlc3VsdC5lcnJvcigpKSB9KTsKKyAgICAg
ICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihjb252ZXJ0VG9FeGNlcHRpb24ocmVzdWx0
LmVycm9yKCkpKTsKIAogICAgICAgICBhdXRvIGlkZW50aWZpZXIgPSByZXN1bHQudmFsdWUoKTsK
ICAgICAgICAgaWYgKCFpZGVudGlmaWVyLmlzVmFsaWQoKSkKQEAgLTk0LDE2ICs5NCwxMyBAQCB2
b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Z2V0RGlyZWN0b3J5SGFuZGxlKFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbAogICAgIH0pOwogfQogCi12b2lkIFdlYkZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6cmVtb3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vy
c2l2ZWx5LCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlJlbW92ZUVudHJ5
Q2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOjpyZW1vdmVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHks
IFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Vm9pZENhbGxiYWNrJiYgY29t
cGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCiAgICAgICAgIHJldHVy
biBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpVbmtub3du
RXJyb3IsICJDb25uZWN0aW9uIGlzIGxvc3QiIH0pOwogCiAgICAgbV9jb25uZWN0aW9uLT5zZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6UmVtb3ZlRW50
cnkoaWRlbnRpZmllciwgbmFtZSwgZGVsZXRlUmVjdXJzaXZlbHkpLCBbY29tcGxldGlvbkhhbmRs
ZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byBlcnJvcikgbXV0YWJsZSB7Ci0g
ICAgICAgIGlmIChlcnJvcikKLSAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihX
ZWJDb3JlOjpFeGNlcHRpb24geyBjb252ZXJ0VG9FeGNlcHRpb25Db2RlKGVycm9yLnZhbHVlKCkp
IH0pOwotCi0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CisgICAgICAgIHJldHVybiBj
b21wbGV0aW9uSGFuZGxlcihjb252ZXJ0VG9FeGNlcHRpb25PcihlcnJvcikpOwogICAgIH0pOwog
fQogCkBAIC0xMTQsMTAgKzExMSw2NiBAQCB2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbjo6cmVzb2x2ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcgogCiAgICAg
bV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdl
TWFuYWdlcjo6UmVzb2x2ZShpZGVudGlmaWVyLCBvdGhlcklkZW50aWZpZXIpLCBbY29tcGxldGlv
bkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byByZXN1bHQpIG11dGFi
bGUgewogICAgICAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9u
SGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBjb252ZXJ0VG9FeGNlcHRpb25Db2RlKHJlc3Vs
dC5lcnJvcigpKSB9KTsKKyAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihjb252
ZXJ0VG9FeGNlcHRpb24ocmVzdWx0LmVycm9yKCkpKTsKKworICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihXVEZNb3ZlKHJlc3VsdC52YWx1ZSgpKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0QWNjZXNzSGFuZGxlQ2FsbGJhY2smJiBjb21wbGV0aW9u
SGFuZGxlcikKK3sKKyAgICBpZiAoIW1fY29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuIGNvbXBs
ZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwg
IkNvbm5lY3Rpb24gaXMgbG9zdCIgfSk7CisKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5
bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpDcmVhdGVTeW5jQWNjZXNz
SGFuZGxlKGlkZW50aWZpZXIpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgICAgICBpZiAoIXJlc3VsdCkK
KyAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihjb252ZXJ0VG9FeGNlcHRpb24o
cmVzdWx0LmVycm9yKCkpKTsKIAogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJl
c3VsdC52YWx1ZSgpKSk7CiAgICAgfSk7CiB9CiAKK3ZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOjpnZXRTaXplKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBh
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBJbnRlZ2VyQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxl
cikKK3sKKyAgICBpZiAoIW1fY29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25I
YW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5l
Y3Rpb24gaXMgbG9zdCIgfSk7CisKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpHZXRTaXplRm9yQWNjZXNzSGFuZGxl
KGlkZW50aWZpZXIsIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpLCBbY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAg
ICAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihj
b252ZXJ0VG9FeGNlcHRpb24ocmVzdWx0LmVycm9yKCkpKTsKKworICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihyZXN1bHQudmFsdWUoKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uOjp0cnVuY2F0ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSwgVm9pZENhbGxi
YWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAg
ICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3Jl
OjpVbmtub3duRXJyb3IsICJDb25uZWN0aW9uIGlzIGxvc3QiIH0pOworCisgICAgbV9jb25uZWN0
aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6
VHJ1bmNhdGVGb3JBY2Nlc3NIYW5kbGUoaWRlbnRpZmllciwgYWNjZXNzSGFuZGxlSWRlbnRpZmll
ciwgc2l6ZSksIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
XShhdXRvIGVycm9yKSBtdXRhYmxlIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY29udmVy
dFRvRXhjZXB0aW9uT3IoZXJyb3IpKTsKKyAgICB9KTsKK30KKwordm9pZCBXZWJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb246OmZsdXNoKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRp
ZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBWb2lkQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3sKKyAgICBpZiAoIW1fY29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRp
b25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNv
bm5lY3Rpb24gaXMgbG9zdCIgfSk7CisKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNS
ZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpGbHVzaEZvckFjY2Vzc0hhbmRs
ZShpZGVudGlmaWVyLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSwgW2NvbXBsZXRpb25IYW5kbGVy
ID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8gZXJyb3IpIG11dGFibGUgeworICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihjb252ZXJ0VG9FeGNlcHRpb25PcihlcnJvcikpOworICAg
IH0pOworfQorCit2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y2xvc2UoV2Vi
Q29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIs
IFZvaWRDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmICghbV9jb25uZWN0
aW9uKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9u
IHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0IiB9KTsKKworICAg
IG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFn
ZU1hbmFnZXI6OkNsb3NlQWNjZXNzSGFuZGxlKGlkZW50aWZpZXIsIGFjY2Vzc0hhbmRsZUlkZW50
aWZpZXIpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0o
YXV0byBlcnJvcikgbXV0YWJsZSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGNvbnZlcnRU
b0V4Y2VwdGlvbk9yKGVycm9yKSk7CisgICAgfSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IGI2
MDFiZTY0MzUzZGFmYzc3N2M2YmNlNDJiMWU5ZjI5MTM5MjMwYzIuLmUwNzJlOWY5MzIzNGU3ZjJh
NmU2OTE3NGM3ZTY5NGYzOGZhZDVhNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTUxLDkgKzUxLDE1IEBAIHByaXZhdGU6CiAgICAgdm9pZCBp
c1NhbWVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbjo6U2FtZUVudHJ5Q2FsbGJhY2smJik7CiAgICAgdm9pZCBnZXRGaWxlSGFuZGxlKFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJv
b2wgY3JlYXRlSWZOZWNlc3NhcnksIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bjo6R2V0SGFuZGxlQ2FsbGJhY2smJik7CiAgICAgdm9pZCBnZXREaXJlY3RvcnlIYW5kbGUoV2Vi
Q29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9v
bCBjcmVhdGVJZk5lY2Vzc2FyeSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OjpHZXRIYW5kbGVDYWxsYmFjayYmKTsKLSAgICB2b2lkIHJlbW92ZUVudHJ5KFdlYkNvcmU6OkZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRl
UmVjdXJzaXZlbHksIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6UmVtb3Zl
RW50cnlDYWxsYmFjayYmKTsKKyAgICB2b2lkIHJlbW92ZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJz
aXZlbHksIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Vm9pZENhbGxiYWNr
JiYpOwogICAgIHZvaWQgcmVzb2x2ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbjo6UmVzb2x2ZUNhbGxiYWNrJiYpOwogCisgICAgdm9pZCBjcmVh
dGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBX
ZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEFjY2Vzc0hhbmRsZUNhbGxi
YWNrJiYpIGZpbmFsOworICAgIHZvaWQgZ2V0U2l6ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVy
LCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkludGVnZXJDYWxsYmFjayYm
KSBmaW5hbDsKKyAgICB2b2lkIHRydW5jYXRlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHVp
bnQ2NF90IHNpemUsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Vm9pZENh
bGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgZmx1c2goV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
ciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJikg
ZmluYWw7CisgICAgdm9pZCBjbG9zZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXZWJDb3Jl
OjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmKSBmaW5hbDsKKwog
ICAgIFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9yYWdlQ29u
bmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
U3RvcmFnZUNvbm5lY3Rpb24uY3BwCmluZGV4IDJhY2I1ZmFhZjNmNDZkN2Y4NGRiYmJiODczMzJk
MzM2NTQ5MDM3NmQuLmU3MDkwNTA3Mzk5MmFkZTRmNDk3MWE0NzYwYzAyNzM3ODM3ZmE4MTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9y
YWdlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlN0b3JhZ2VDb25uZWN0aW9uLmNwcApAQCAtNTYsNyArNTYsNyBAQCB2b2lkIFdl
YlN0b3JhZ2VDb25uZWN0aW9uOjpmaWxlU3lzdGVtR2V0RGlyZWN0b3J5KGNvbnN0IFdlYkNvcmU6
OkNsaWVudE9yaWdpbiYgbwogICAgIGF1dG8mIGNvbm5lY3Rpb24gPSBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCk7CiAg
ICAgY29ubmVjdGlvbi5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdl
TWFuYWdlcjo6RmlsZVN5c3RlbUdldERpcmVjdG9yeShvcmlnaW4pLCBbY29tcGxldGlvbkhhbmRs
ZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byByZXN1bHQpIG11dGFibGUgewog
ICAgICAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxl
cihXZWJDb3JlOjpFeGNlcHRpb24geyBjb252ZXJ0VG9FeGNlcHRpb25Db2RlKHJlc3VsdC5lcnJv
cigpKSB9KTsKKyAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihjb252ZXJ0VG9F
eGNlcHRpb24ocmVzdWx0LmVycm9yKCkpKTsKIAogICAgICAgICBhdXRvIGlkZW50aWZpZXIgPSBy
ZXN1bHQudmFsdWUoKTsKICAgICAgICAgaWYgKCFpZGVudGlmaWVyLmlzVmFsaWQoKSkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCBiNGI2NzY4NWZjYjAxYmI3ZTU1ZWVkMjA5MGFmNzU0YjM4OTA0Y2MyLi5iNzVhMWIwMjJiYTg0
OTY4ZDZkMzlmOGRkOWJiMDliY2MzZDdiZDE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEt
MTAtMDUgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1
cHBvcnQgZm9yIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzExODUKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzgzODQ3ODU5PgorCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAg
ICAgICAgKiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3MvcmVzb3VyY2VzL3N5bmMtYWNjZXNzLWhh
bmRsZS1iYXNpY3MuanM6IEFkZGVkLgorICAgICAgICAoZmluaXNoVGVzdCk6CisgICAgICAgIChn
ZXREaXJlY3RvcnkpOgorICAgICAgICAqIHN0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFj
Y2Vzcy1oYW5kbGUtYmFzaWNzLXdvcmtlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHN0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtYmFzaWNzLXdvcmtl
ci5odG1sOiBBZGRlZC4KKwogMjAyMS0xMC0wNSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2Vy
QGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjgzMzM1KTogTW9tZW50dW0gc2Ny
b2xsaW5nIGlzIG5vIGxvbmdlciBsb2NrZWQgdG8gYW4gYXhpcwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9D
aGFuZ2VMb2cKaW5kZXggN2M0Y2Y3YjRhOWUxYTNmZWRlNGExZjA1NzA3M2ZiMGVmZWM4NWVlNi4u
ZDg0MTBmYmZkYjE3ZTMwZWIzY2QxOTE5NzZkYTVkNDYyY2M4NDFiZiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMTAtMDUgIFNpaHVpIExpdSAg
PHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzExODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzODQ3ODU5PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvZmlsZS1zeXN0ZW0tYWNjZXNzL3NhbmRib3hlZF9GaWxlU3lzdGVtRmlsZUhhbmRs
ZS1zeW5jLWFjY2Vzcy1oYW5kbGUtbG9jay5odHRwcy50ZW50YXRpdmUud29ya2VyLWV4cGVjdGVk
LnR4dDoKKwogMjAyMS0xMC0wNSAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgW2Nzcy1wb3NpdGlvbi1zdGlja3ldIHNjcm9sbEludG9WaWV3IHNob3Vs
ZCBub3QgdGFrZSBpbnRvIGFjY291bnQgc3RpY2t5IHBvc2l0aW9uaW5nIG9mZnNldHMKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmlsZS1z
eXN0ZW0tYWNjZXNzL3NhbmRib3hlZF9GaWxlU3lzdGVtRmlsZUhhbmRsZS1zeW5jLWFjY2Vzcy1o
YW5kbGUtbG9jay5odHRwcy50ZW50YXRpdmUud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmlsZS1zeXN0ZW0tYWNjZXNzL3Nh
bmRib3hlZF9GaWxlU3lzdGVtRmlsZUhhbmRsZS1zeW5jLWFjY2Vzcy1oYW5kbGUtbG9jay5odHRw
cy50ZW50YXRpdmUud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCBiNDYyOGE3ZGYyMmRmZTg4YTdi
MzcxMmZmYjM2N2RmY2NlZWU4NzA0Li43ZGFkYzJkNGYwNmQ4NDRhMjEyZjY0MDRjMGQxYWI5ZjU2
MzcwY2I5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZpbGUtc3lzdGVtLWFjY2Vzcy9zYW5kYm94ZWRfRmlsZVN5c3RlbUZpbGVIYW5kbGUt
c3luYy1hY2Nlc3MtaGFuZGxlLWxvY2suaHR0cHMudGVudGF0aXZlLndvcmtlci1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9maWxl
LXN5c3RlbS1hY2Nlc3Mvc2FuZGJveGVkX0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLXN5bmMtYWNjZXNz
LWhhbmRsZS1sb2NrLmh0dHBzLnRlbnRhdGl2ZS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDQg
KzEsNCBAQAogCi1GQUlMIFRoZXJlIGNhbiBvbmx5IGJlIG9uZSBvcGVuIGFjY2VzcyBoYW5kbGUg
YXQgYW55IGdpdmVuIHRpbWUgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGgg
dmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBmaWxlSGFuZGxlLmNyZWF0ZVN5bmNBY2Nlc3NIYW5k
bGUgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnZmlsZUhhbmRsZS5jcmVhdGVTeW5jQWNjZXNzSGFu
ZGxlKCknLCAnZmlsZUhhbmRsZS5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlJyBpcyB1bmRlZmluZWQp
IgotRkFJTCBBbiBhY2Nlc3MgaGFuZGxlIGZyb20gb25lIGZpbGUgZG9lcyBub3QgaW50ZXJmZXJl
IHdpdGggdGhlIGNyZWF0aW9uIG9mIGFuIGFjY2VzcyBoYW5kbGUgb24gYW5vdGhlciBmaWxlIHBy
b21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVF
cnJvcjogZm9vRmlsZUhhbmRsZS5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlIGlzIG5vdCBhIGZ1bmN0
aW9uLiAoSW4gJ2Zvb0ZpbGVIYW5kbGUuY3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpJywgJ2Zvb0Zp
bGVIYW5kbGUuY3JlYXRlU3luY0FjY2Vzc0hhbmRsZScgaXMgdW5kZWZpbmVkKSIKK1BBU1MgVGhl
cmUgY2FuIG9ubHkgYmUgb25lIG9wZW4gYWNjZXNzIGhhbmRsZSBhdCBhbnkgZ2l2ZW4gdGltZQor
UEFTUyBBbiBhY2Nlc3MgaGFuZGxlIGZyb20gb25lIGZpbGUgZG9lcyBub3QgaW50ZXJmZXJlIHdp
dGggdGhlIGNyZWF0aW9uIG9mIGFuIGFjY2VzcyBoYW5kbGUgb24gYW5vdGhlciBmaWxlCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9yZXNvdXJjZXMv
c3luYy1hY2Nlc3MtaGFuZGxlLWJhc2ljcy5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5
c3RlbWFjY2Vzcy9yZXNvdXJjZXMvc3luYy1hY2Nlc3MtaGFuZGxlLWJhc2ljcy5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45NjcxMjVhNDZkYzZiNmVjM2ZjZmVmMTM5NGE4NjA4Yzg2NTI4NzJjCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3Jlc291cmNlcy9z
eW5jLWFjY2Vzcy1oYW5kbGUtYmFzaWNzLmpzCkBAIC0wLDAgKzEsODEgQEAKK2lmICh0aGlzLmlt
cG9ydFNjcmlwdHMpIHsKKyAgICBpbXBvcnRTY3JpcHRzKCcuLi8uLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC5qcycpOworfQorCitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNrcyBiYXNpYyBmdW50
aW9uYWxpdGllcyBvZiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS4iKTsKKwordmFyIHJvb3RI
YW5kbGUsIGZpbGVIYW5kbGUsIGFjY2Vzc0hhbmRsZTEsIGFjY2Vzc0hhbmRsZTIsIGNyZWF0ZUVy
cm9yOworCitmdW5jdGlvbiBmaW5pc2hUZXN0KGVycm9yKQoreworICAgIGlmIChlcnJvcikgewor
ICAgICAgICB0ZXN0RmFpbGVkKGVycm9yKTsKKyAgICB9CisgICAgZmluaXNoSlNUZXN0KCk7Cit9
CisKK2Z1bmN0aW9uIGdldERpcmVjdG9yeSgpIHsKKyAgICBuYXZpZ2F0b3Iuc3RvcmFnZS5nZXRE
aXJlY3RvcnkoKS50aGVuKChoYW5kbGUpID0+IHsKKyAgICAgICAgcm9vdEhhbmRsZSA9IGhhbmRs
ZTsKKyAgICAgICAgY3JlYXRlRmlsZUhhbmRsZShyb290SGFuZGxlKTsKKyAgICB9KS5jYXRjaCgo
ZXJyb3IpID0+IHsKKyAgICAgICAgZmluaXNoVGVzdChlcnJvcik7CisgICAgfSk7Cit9CisKK2Z1
bmN0aW9uIGNyZWF0ZUZpbGVIYW5kbGUoZnJvbUhhbmRsZSkgeworICAgIGZyb21IYW5kbGUuZ2V0
RmlsZUhhbmRsZSgic3luYy1hY2Nlc3MtaGFuZGxlLnR4dCIsIHsgImNyZWF0ZSIgOiB0cnVlIH0p
LnRoZW4oKGhhbmRsZSkgPT4geworICAgICAgICBmaWxlSGFuZGxlID0gaGFuZGxlOworICAgICAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImZpbGVIYW5kbGUubmFtZSIsICJzeW5jLWFjY2Vzcy1o
YW5kbGUudHh0Iik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZmlsZUhhbmRsZS5r
aW5kIiwgImZpbGUiKTsKKyAgICAgICAgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShmaWxlSGFuZGxl
KTsKKyAgICB9KS5jYXRjaCgoZXJyb3IpID0+IHsKKyAgICAgICAgZmluaXNoVGVzdChlcnJvcik7
CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoZnJvbUhhbmRs
ZSkgeworICAgIGZyb21IYW5kbGUuY3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpLnRoZW4oKGhhbmRs
ZSkgPT4geworICAgICAgICBhY2Nlc3NIYW5kbGUxID0gaGFuZGxlOworICAgICAgICBkZWJ1Zygi
YWNjZXNzSGFuZGxlMSBpcyBjcmVhdGVkIik7CisgICAgICAgIGdldFNpemUoYWNjZXNzSGFuZGxl
MSk7CisgICAgfSkuY2F0Y2goKGVycm9yKSA9PiB7CisgICAgICAgIGZpbmlzaFRlc3QoZXJyb3Ip
OworICAgIH0pOworfQorCitmdW5jdGlvbiBnZXRTaXplKGFjY2Vzc0hhbmRsZSkgeworICAgIGFj
Y2Vzc0hhbmRsZS5nZXRTaXplKCkudGhlbigocmVzdWx0KSA9PiB7CisgICAgICAgIHNpemUgPSBy
ZXN1bHQ7CisgICAgICAgIHNob3VsZEJlKCJzaXplIiwgIjAiKTsKKyAgICAgICAgY3JlYXRlU2Vj
b25kU3luY0FjZXNzSGFuZGxlKGZpbGVIYW5kbGUpOworICAgIH0pLmNhdGNoKChlcnJvcikgPT4g
eworICAgICAgICBmaW5pc2hUZXN0KGVycm9yKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gY3Jl
YXRlU2Vjb25kU3luY0FjZXNzSGFuZGxlKGZyb21IYW5kbGUpIHsKKyAgICBmcm9tSGFuZGxlLmNy
ZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKS50aGVuKChoYW5kbGUpID0+IHsKKyAgICAgICAgYWNjZXNz
SGFuZGxlMiA9IGhhbmRsZTsKKyAgICAgICAgLy8gU2Vjb25kIGNyZWF0aW9uIHNob3VsZCBzdWNj
ZWVkLgorICAgICAgICBkZWJ1ZygiYWNjZXNzSGFuZGxlMiBpcyBjcmVhdGVkIik7CisgICAgICAg
IGZpbmlzaFRlc3QoKTsKKyAgICB9KS5jYXRjaCgoZXJyb3IpID0+IHsKKyAgICAgICAgLy8gRmly
c3QgY3JlYXRpb24gc2hvdWxkIGZhaWwgYXMgdGhlcmUgaXMgYW4gYWN0aXZlIGhhbmRsZS4KKyAg
ICAgICAgY3JlYXRlRXJyb3IgPSBlcnJvcjsKKyAgICAgICAgZGVidWcoImFjY2Vzc0hhbmRsZTIg
Y2Fubm90IGJlIGNyZWF0ZWQiKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJjcmVh
dGVFcnJvci50b1N0cmluZygpIiwgIkludmFsaWRTdGF0ZUVycm9yOiBUaGUgb2JqZWN0IGlzIGlu
IGFuIGludmFsaWQgc3RhdGUuIik7CisgICAgICAgIGNsb3NlKCk7CisgICAgfSk7Cit9CisKK2Z1
bmN0aW9uIGNsb3NlKCkgeworICAgIGFjY2Vzc0hhbmRsZTEuY2xvc2UoKS50aGVuKChyZXN1bHQp
ID0+IHsKKyAgICAgICAgZGVidWcoImFjY2Vzc0hhbmRsZTEgaXMgY2xvc2VkIik7CisgICAgICAg
IGNyZWF0ZVNlY29uZFN5bmNBY2Vzc0hhbmRsZShmaWxlSGFuZGxlKTsKKyAgICB9KS5jYXRjaCgo
ZXJyb3IpID0+IHsKKyAgICAgICAgZmluaXNoVGVzdChlcnJvcik7CisgICAgfSk7Cit9CisKK2dl
dERpcmVjdG9yeSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVt
YWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1iYXNpY3Mtd29ya2VyLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtYmFz
aWNzLXdvcmtlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDc0ZjVkNzE1NTczMDdlNGJkMTRj
MTQ2YmE5M2FiZDUyZGI5YTRmNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtYmFzaWNzLXdvcmtlci1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxOCBAQAorW1dvcmtlcl0gVGhpcyB0ZXN0IGNoZWNrcyBiYXNp
YyBmdW50aW9uYWxpdGllcyBvZiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1N0YXJ0aW5nIHdvcmtlcjogcmVzb3VyY2VzL3N5bmMt
YWNjZXNzLWhhbmRsZS1iYXNpY3MuanMKK1BBU1MgW1dvcmtlcl0gZmlsZUhhbmRsZS5uYW1lIGlz
ICJzeW5jLWFjY2Vzcy1oYW5kbGUudHh0IgorUEFTUyBbV29ya2VyXSBmaWxlSGFuZGxlLmtpbmQg
aXMgImZpbGUiCitbV29ya2VyXSBhY2Nlc3NIYW5kbGUxIGlzIGNyZWF0ZWQKK1BBU1MgW1dvcmtl
cl0gc2l6ZSBpcyAwCitbV29ya2VyXSBhY2Nlc3NIYW5kbGUyIGNhbm5vdCBiZSBjcmVhdGVkCitQ
QVNTIFtXb3JrZXJdIGNyZWF0ZUVycm9yLnRvU3RyaW5nKCkgaXMgIkludmFsaWRTdGF0ZUVycm9y
OiBUaGUgb2JqZWN0IGlzIGluIGFuIGludmFsaWQgc3RhdGUuIgorW1dvcmtlcl0gYWNjZXNzSGFu
ZGxlMSBpcyBjbG9zZWQKK1tXb3JrZXJdIGFjY2Vzc0hhbmRsZTIgaXMgY3JlYXRlZAorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUt
YmFzaWNzLXdvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNz
L3N5bmMtYWNjZXNzLWhhbmRsZS1iYXNpY3Mtd29ya2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2ZlYzM2
YTU5NjBiNGFhYTIxYTJmODBhZDExY2VkNGI3ZWNlZDlkNQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtYmFz
aWNzLXdvcmtlci5odG1sCkBAIC0wLDAgKzEsOSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxzY3JpcHQ+Cit3b3JrZXIgPSBzdGFydFdvcmtlcigncmVzb3VyY2VzL3N5bmMtYWNjZXNz
LWhhbmRsZS1iYXNpY3MuanMnKTs8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440423</attachid>
            <date>2021-10-06 13:06:11 -0700</date>
            <delta_ts>2021-10-06 14:53:29 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-231185-20211006130609.patch</filename>
            <type>text/plain</type>
            <size>93390</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGE4NDgwMmU4NjAzYjY5ZDZiNGYwOWI2
NTQyNjY5ZTQzMTU3ZjQ1N2MuLjllMGFiZjBhYWJhZThjNjRhMzUxNzlhOGQyZGNjYzQ3ZDIwN2U0
N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEtMTAtMDYgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzExODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzODQ3ODU5PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNl
cy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sOgorICAgICAgICAqIHd0Zi9GaWxlU3lz
dGVtLmg6CisgICAgICAgICogd3RmL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3BwOgorICAgICAgICAo
V1RGOjpGaWxlU3lzdGVtSW1wbDo6Zmx1c2hGaWxlKToKKyAgICAgICAgKiB3dGYvcG9zaXgvRmls
ZVN5c3RlbVBPU0lYLmNwcDoKKyAgICAgICAgKFdURjo6RmlsZVN5c3RlbUltcGw6OmZsdXNoRmls
ZSk6CisgICAgICAgICogd3RmL3dpbi9GaWxlU3lzdGVtV2luLmNwcDoKKyAgICAgICAgKFdURjo6
RmlsZVN5c3RlbUltcGw6OmZsdXNoRmlsZSk6CisKIDIwMjEtMTAtMDUgIERhdmlkIEtpbHplciAg
PGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBGb2xsb3ctdXAgIzI6IFdURjo6UmV0YWlu
UHRyPD4gYWxsb3dzIGFzc2lnbm1lbnQgb2YgdHdvIHBvaW50ZXIgdHlwZXMgdGhhdCBhcmUgbm90
IGFzc2lnbmFibGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzNDNiMjc2MjZjOGMyY2NiYTY2NzUwMGJhNzgxZmIy
ZGM2MmEwMjVjLi45OTVmMjhiMTRlNGJmZmQ2YzIwZmI3YzllMGFjNzI0NGExYzJmNzU0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNjIgQEAKKzIwMjEtMTAtMDYgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzExODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzODQ3ODU5PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBiYXNpYyBzdXBw
b3J0IGZvciBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSBhcyBwcm9wb3NhbDoKKyAgICAgICAg
aHR0cHM6Ly9naXRodWIuY29tL1dJQ0cvZmlsZS1zeXN0ZW0tYWNjZXNzL2Jsb2IvbWFpbi9BY2Nl
c3NIYW5kbGUubWQKKworICAgICAgICBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSBjYW4gYmUg
Y3JlYXRlZCB2aWEgRmlsZVN5c3RlbUZpbGVIYW5kbGUsIGFuZCBpdCBjb21tdWljYXRlcyB3aXRo
IGJhY2tlbmQgdmlhIAorICAgICAgICBGaWxlU3lzdGVtRmlsZUhhbmRsZS4KKworICAgICAgICBU
ZXN0OiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLWJhc2ljcy13
b3JrZXIuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZl
ZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAq
IEhlYWRlcnMuY21ha2U6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVT
eXN0ZW1GaWxlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFu
ZGxlOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0
ZW1GaWxlSGFuZGxlOjpnZXRTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxl
SGFuZGxlOjp0cnVuY2F0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRs
ZTo6Zmx1c2gpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNsb3Nl
KToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5k
bGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVI
YW5kbGUuaWRsOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKToK
KyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjp+RmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGU6OnRydW5jYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlOjpnZXRTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlOjpmbHVzaCk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZTo6Y2xvc2UpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU6OmRpZENsb3NlKToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbDogQWRkZWQuCisgICAg
ICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
SWRlbnRpZmllci5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6c2NvcGVDbG9zZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpyZW1vdmVFbnRy
eSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246
OmRpZENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjb21wbGV0ZUludGVnZXJDYWxsYmFjayk6CisgICAg
ICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNvbXBsZXRl
Vm9pZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpX
b3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldFNpemUpOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjp0cnVuY2F0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmZsdXNoKToK
KyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y2xv
c2UpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OjpkaWRSZW1vdmVFbnRyeSk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFNv
dXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6CisKIDIwMjEtMTAt
MDUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUkVH
UkVTU0lPTiAocjI4MzMzNSk6IE1vbWVudHVtIHNjcm9sbGluZyBpcyBubyBsb25nZXIgbG9ja2Vk
IHRvIGFuIGF4aXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZjg1ZGYzZjBhZTNiOWYwYzYzYWE3YzkxM2U4MjYyNzJm
YTVmYTNlMy4uNzliNTNmYjc3NmQyMTRkY2U3MDkwNTRkMjQ0NDM4YmNiYzc4YzAyYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw1NCBAQAorMjAyMS0xMC0wNiAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFw
cGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
MTE4NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODM4NDc4NTk+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VycmVudGx5IHdlIG9ubHkgYWxsb3cg
b25lIG9wZW4gYWNjZXNzIGhhbmRsZSBvbiBvbmUgZmlsZS4gU2Vjb25kIGFjY2VzcyBoYW5kbGUg
Y2FuIGJlIGNyZWF0ZWQgYWZ0ZXIgdGhlIGZpcnN0CisgICAgICAgIGlzIGNsb3NlZC4KKworICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oOgor
ICAgICAgICAoV2ViS2l0Ojpjb252ZXJ0VG9FeGNlcHRpb24pOgorICAgICAgICAoV2ViS2l0Ojpj
b252ZXJ0VG9FeGNlcHRpb25Pcik6CisgICAgICAgIChXZWJLaXQ6OmNvbnZlcnRUb0V4Y2VwdGlv
bkNvZGUpOiBEZWxldGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFn
ZUhhbmRsZTo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlOjpnZXRTaXplKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3Rl
bVN0b3JhZ2VIYW5kbGU6OnRydW5jYXRlKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGU6OmZsdXNoKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VI
YW5kbGU6OmNsb3NlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxl
U3lzdGVtU3RvcmFnZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3Rv
cmFnZU1hbmFnZXI6OmNvbm5lY3Rpb25DbG9zZWQpOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lz
dGVtU3RvcmFnZU1hbmFnZXI6OmFjcXVpcmVMb2NrRm9yRmlsZSk6CisgICAgICAgIChXZWJLaXQ6
OkZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlcjo6cmVsZWFzZUxvY2tGb3JGaWxlKToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpjcmVhdGVTeW5jQWNjZXNz
SGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpnZXRTaXpl
Rm9yQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2Vy
Ojp0cnVuY2F0ZUZvckFjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTdG9y
YWdlTWFuYWdlcjo6Zmx1c2hGb3JBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrU3RvcmFnZU1hbmFnZXI6OmNsb3NlQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAodHlwZXNfdGhhdF9j
YW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldEZpbGVIYW5kbGUpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldERpcmVjdG9y
eUhhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bjo6cmVtb3ZlRW50cnkpOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OnJlc29sdmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb246OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldFNpemUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnRydW5jYXRlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpmbHVzaCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y2xvc2UpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9yYWdlQ29ubmVj
dGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlN0b3JhZ2VDb25uZWN0aW9uOjpmaWxlU3lz
dGVtR2V0RGlyZWN0b3J5KToKKwogMjAyMS0xMC0wNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgogCiAgICAgICAgIEFkZCBTUEkgdG8gbGF1bmNoIGEgc2VydmljZSBzZXJ2aWNlIHdv
cmtlciBpbiBhIFdLV2ViVmlldyBhbmQgZXhwb3NlIHNlcnZpY2Ugd29ya2VyIHRvIGluamVjdGVk
IGJ1bmRsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlBy
ZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5j
ZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAppbmRleCA1MjVlNjAzNTJmNThlZTRh
NTZlYjQ4ODBjZDA1NDZkOWMwM2Q2ZmFkLi5iMTEyNjQ3NjA0ZmRhOWRhZGY0NDY0OTQ5ZjIxZWVh
Nzk5ZjI1ZTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2Vi
UHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJl
ZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtMjYsNiArMjYsMTgg
QEAKICMgVGhleSBtdXN0IGluY2x1ZGUgYSBodW1hblJlYWRhYmxlTmFtZSBhbmQgaHVtYW5SZWFk
YWJsZURlc2NyaXB0aW9uLiBUaGlzIGlzCiAjICAgdGhlIHRleHQgZXhwb3NlZCB0byB0aGUgdXNl
ciBmcm9tIHRoZSBXZWJLaXQgY2xpZW50LgogCitBY2Nlc3NIYW5kbGVFbmFibGVkOgorICB0eXBl
OiBib29sCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiQWNjZXNzSGFuZGxlIEFQSSIKKyAgaHVtYW5S
ZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIEFjY2Vzc0hhbmRsZSBBUEkiCisgIGRlZmF1bHRW
YWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6CisgICAgICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYktp
dDoKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgV2ViQ29yZToKKyAgICAgIGRlZmF1bHQ6IGZh
bHNlCisKIEFjY2Vzc2liaWxpdHlPYmplY3RNb2RlbEVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAg
aHVtYW5SZWFkYWJsZU5hbWU6ICJBY2Nlc3NpYmlsaXR5IE9iamVjdCBNb2RlbCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uaCBiL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0
ZW0uaAppbmRleCBjNDUwMWQxNGE3NDJhYTIxZmE2ZGM3YTczZjgzMDllYzZhODdmNGQ1Li5iMTA3
MzcwNjk4ZTFhZDFkYTc5NGE3ZTQ2NmNjMDA3MTJhN2Q4NjY3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9GaWxlU3lzdGVtLmgKKysrIGIvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5oCkBA
IC0xNTQsNiArMTU0LDcgQEAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgY2xvc2VGaWxlKFBsYXRm
b3JtRmlsZUhhbmRsZSYpOwogLy8gUmV0dXJucyB0aGUgcmVzdWx0aW5nIG9mZnNldCBmcm9tIHRo
ZSBiZWdpbm5pbmcgb2YgdGhlIGZpbGUgaWYgc3VjY2Vzc2Z1bCwgLTEgb3RoZXJ3aXNlLgogV1RG
X0VYUE9SVF9QUklWQVRFIGxvbmcgbG9uZyBzZWVrRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUsIGxv
bmcgbG9uZyBvZmZzZXQsIEZpbGVTZWVrT3JpZ2luKTsKIFdURl9FWFBPUlRfUFJJVkFURSBib29s
IHRydW5jYXRlRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUsIGxvbmcgbG9uZyBvZmZzZXQpOworV1RG
X0VYUE9SVF9QUklWQVRFIGJvb2wgZmx1c2hGaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSk7CiAvLyBS
ZXR1cm5zIG51bWJlciBvZiBieXRlcyBhY3R1YWxseSByZWFkIGlmIHN1Y2Nlc3NmdWwsIC0xIG90
aGVyd2lzZS4KIFdURl9FWFBPUlRfUFJJVkFURSBpbnQgd3JpdGVUb0ZpbGUoUGxhdGZvcm1GaWxl
SGFuZGxlLCBjb25zdCB2b2lkKiBkYXRhLCBpbnQgbGVuZ3RoKTsKIC8vIFJldHVybnMgbnVtYmVy
IG9mIGJ5dGVzIGFjdHVhbGx5IHdyaXR0ZW4gaWYgc3VjY2Vzc2Z1bCwgLTEgb3RoZXJ3aXNlLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAgYi9Tb3Vy
Y2UvV1RGL3d0Zi9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcAppbmRleCA1NDYyNDRjNzA0MTA4NGNi
NGI0MmU5ZjBhYWViYThhMjYyOTAzZmQzLi5mODEyN2YwYmEwZjQ0ZTQ5ZWYyODU5ZTE1MTgwMDhj
MWIzMDQ4NDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9nbGliL0ZpbGVTeXN0ZW1HbGli
LmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcApAQCAtMjEz
LDYgKzIxMywxMSBAQCBib29sIHRydW5jYXRlRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxl
LCBsb25nIGxvbmcgb2Zmc2V0KQogICAgIHJldHVybiBnX3NlZWthYmxlX3RydW5jYXRlKEdfU0VF
S0FCTEUoZ19pb19zdHJlYW1fZ2V0X291dHB1dF9zdHJlYW0oR19JT19TVFJFQU0oaGFuZGxlKSkp
LCBvZmZzZXQsIG51bGxwdHIsIG51bGxwdHIpOwogfQogCitib29sIGZsdXNoRmlsZShQbGF0Zm9y
bUZpbGVIYW5kbGUgaGFuZGxlKQoreworICAgIHJldHVybiBnX291dHB1dF9zdHJlYW1fZmx1c2go
Z19pb19zdHJlYW1fZ2V0X291dHB1dF9zdHJlYW0oR19JT19TVFJFQU0oaGFuZGxlKSksIG51bGxw
dHIsIG51bGxwdHIpOworfQorCiBpbnQgd3JpdGVUb0ZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhh
bmRsZSwgY29uc3Qgdm9pZCogZGF0YSwgaW50IGxlbmd0aCkKIHsKICAgICBpZiAoIWxlbmd0aCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHAgYi9T
b3VyY2UvV1RGL3d0Zi9wb3NpeC9GaWxlU3lzdGVtUE9TSVguY3BwCmluZGV4IGIxMzM4MjRlYzJh
MTE1ZWE1MGM3YzM0ZTBmMWE1ZWNlODA0MDJkNGMuLjc5NTY3MGZkNmQ4MDI3OGRmNmMxNzBiMjE2
MmM0OGI1MmU5Y2JiZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3Bvc2l4L0ZpbGVTeXN0
ZW1QT1NJWC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvcG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNw
cApAQCAtMTE4LDYgKzExOCwxMSBAQCBib29sIHRydW5jYXRlRmlsZShQbGF0Zm9ybUZpbGVIYW5k
bGUgaGFuZGxlLCBsb25nIGxvbmcgb2Zmc2V0KQogICAgIHJldHVybiAhZnRydW5jYXRlKGhhbmRs
ZSwgb2Zmc2V0KTsKIH0KIAorYm9vbCBmbHVzaEZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRs
ZSkKK3sKKyAgICByZXR1cm4gIWZzeW5jKGhhbmRsZSk7Cit9CisKIGludCB3cml0ZVRvRmlsZShQ
bGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlLCBjb25zdCB2b2lkKiBkYXRhLCBpbnQgbGVuZ3RoKQog
ewogICAgIGRvIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3dpbi9GaWxlU3lzdGVtV2lu
LmNwcCBiL1NvdXJjZS9XVEYvd3RmL3dpbi9GaWxlU3lzdGVtV2luLmNwcAppbmRleCBmZmE2Mjkz
YzczZTg0ZWVlMGJjZTEyY2M0ZDBkYTdjZGNhNjBiODkzLi4yYmM4ZjIwMTA1MWM3ZDg1YjE3YjQ0
YWMyNzM4ZDJlZDAxZjJkOTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi93aW4vRmlsZVN5
c3RlbVdpbi5jcHAKKysrIGIvU291cmNlL1dURi93dGYvd2luL0ZpbGVTeXN0ZW1XaW4uY3BwCkBA
IC0zMDMsNiArMzAzLDEyIEBAIGJvb2wgdHJ1bmNhdGVGaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSBo
YW5kbGUsIGxvbmcgbG9uZyBvZmZzZXQpCiAgICAgcmV0dXJuIFNldEZpbGVJbmZvcm1hdGlvbkJ5
SGFuZGxlKGhhbmRsZSwgRmlsZUVuZE9mRmlsZUluZm8sICZlb2ZJbmZvLCBzaXplb2YoRklMRV9F
TkRfT0ZfRklMRV9JTkZPKSk7CiB9CiAKK2Jvb2wgZmx1c2hGaWxlKFBsYXRmb3JtRmlsZUhhbmRs
ZSBoYW5kbGUpCit7CisgICAgLy8gTm90IGltcGxlbWVudGVkLgorICAgIHJldHVybiBmYWxzZTsK
K30KKwogaW50IHdyaXRlVG9GaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUsIGNvbnN0IHZv
aWQqIGRhdGEsIGludCBsZW5ndGgpCiB7CiAgICAgaWYgKCFpc0hhbmRsZVZhbGlkKGhhbmRsZSkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDMwMzk0NzU5NzFkNGZiN2Y2ZjliZDFhMDZiOGZmMjZj
YzUwMTdjYmQuLmRmODFlYjZhNzFjY2M4NmNlMWJjOTljNjFhNWEzYmI2ZmJkMzQ0OGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CkBAIC0yOTcsNiArMjk3LDcgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19J
RExfRklMRVMKICAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9y
eUhhbmRsZS5pZGwKICAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVI
YW5kbGUuaWRsCiAgICAgTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUu
aWRsCisgICAgTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlLmlkbAogICAgIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9TdG9yYWdlTWFuYWdlcitGaWxl
U3lzdGVtQWNjZXNzLmlkbAogCiAgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5p
ZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0Cmlu
ZGV4IGMwYmU4NmE3MzU0NDIyZjFmYmRhMGVhMGM2YWQzNDEzOTliZWM5MmUuLmUyZTg5NjE5MjNj
MGM5OTZiM2ZkMDgxNGNjNTAyM2I5MmY2MmY0ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTI2LDYgKzEyNiw3IEBAICQoUFJPSkVD
VF9ESVIpL01vZHVsZXMvZmV0Y2gvV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZStGZXRjaC5pZGwK
ICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0
b3J5SGFuZGxlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1GaWxlSGFuZGxlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRsCiAkKFBST0pFQ1RfRElS
KS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvU3RvcmFnZU1hbmFnZXIrRmlsZVN5c3RlbUFjY2Vz
cy5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkLmlkbAogJChQUk9K
RUNUX0RJUikvTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRCdXR0b24uaWRsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDIxMTEyY2UxNjQ3
ZGQ1ZDRjNmFmNjU5MThiZmIzNDJhNGRjYmNlYmIuLmY0ZjQ4MjI4YmRjNDYyMzAxN2ZkNDQ5ZDEy
NjQxNjQ4MGVlN2ZiYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
LW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91
dHB1dC54Y2ZpbGVsaXN0CkBAIC05MDcsNiArOTA3LDggQEAgJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNGaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRmlsZVN5c3RlbUZpbGVI
YW5kbGUuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNG
aWxlU3lzdGVtSGFuZGxlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNGaWxlU3lzdGVtSGFuZGxlLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwCiskKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0ZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTRmlsbE1vZGUuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0ZpbGxNb2RlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTRm9jdXNFdmVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmlu
ZGV4IDkyZDNjNDcxOTYwYmNjNzJlODkyOTA2M2VhZjViNTdkOTc0M2JlNTQuLmJlOGFjMjcyNDk4
ZGQyNGU2OGI2OWQ5YmQ0MjU3MDQ1NWQ5OWNlNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZQpAQCAtMTU1LDYgKzE1NSw3IEBAIEpTX0JJTkRJTkdfSURMUyA6PSBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5p
ZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1G
aWxlSGFuZGxlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbUhhbmRsZS5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvU3RvcmFnZU1hbmFnZXIrRmlsZVN5c3RlbUFjY2Vzcy5pZGwg
XAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWQuaWRsIFwKICAgICAkKFdl
YkNvcmUpL01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkQnV0dG9uLmlkbCBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZQppbmRleCAzOTRjYjNiYjZlMWEzMjcyNDk1MWIyMjY1N2VkOTU5OWZkMzc4ZjgyLi5mZjg3OGZi
NWQzMjk4ZjUzZThiNzA2ZjhjN2E1ODZkYTlmY2NhODgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAg
LTQyLDYgKzQyLDggQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAg
IE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmgKICAgICBNb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaAogICAgIE1vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAorICAgIE1v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oCisgICAg
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRp
Zmllci5oCiAgICAgTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1N0b3JhZ2VNYW5hZ2VyRmlsZVN5
c3RlbUFjY2Vzcy5oCiAgICAgTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCiAgICAgTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtl
ckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbkNhbGxiYWNrSWRlbnRpZmllci5oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZp
bGVIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1GaWxlSGFuZGxlLmNwcAppbmRleCBiMjEyNTQ3YjVmZTliOWJkMjU2N2ZiMWIwOTQ4
MGJiZGQwZjE5ZjY3Li5hNjlhNzJjNmI2OGEyZDZjZDQ1YzhmYjczNDRiYTQzYjU4NzMzMTY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbUZpbGVIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKQEAgLTI3LDcgKzI3LDkgQEAKICNpbmNs
dWRlICJGaWxlU3lzdGVtRmlsZUhhbmRsZS5oIgogCiAjaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaCIK
ICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgIkpTRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGUuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00OSw1ICs1MSw0MSBAQCB2b2lkIEZpbGVTeXN0ZW1G
aWxlSGFuZGxlOjpnZXRGaWxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZT4+
JiYgcHJvbQogICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9y
LCAiTm90IGltcGxlbWVudGVkIl9zIH0pOwogfQogCit2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxl
OjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+PiYmIHByb21pc2UpCit7CisgICAgY29ubmVjdGlv
bigpLmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoaWRlbnRpZmllcigpLCBbcHJvdGVjdGVkVGhpcyA9
IFJlZiB7ICp0aGlzIH0sIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkg
bXV0YWJsZSB7CisgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCisgICAgICAgICAg
ICByZXR1cm4gcHJvbWlzZS5yZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CisKKyAg
ICAgICAgcHJvbWlzZS5zZXR0bGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZShw
cm90ZWN0ZWRUaGlzLmdldCgpLCByZXN1bHQucmV0dXJuVmFsdWUoKSkpOworICAgIH0pOworfQor
Cit2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpnZXRTaXplKEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBET01Qcm9taXNlRGVmZXJy
ZWQ8SURMVW5zaWduZWRMb25nTG9uZz4mJiBwcm9taXNlKQoreworICAgIGNvbm5lY3Rpb24oKS5n
ZXRTaXplKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgW3Byb21pc2UgPSBX
VEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIHByb21pc2Uu
c2V0dGxlKFdURk1vdmUocmVzdWx0KSk7CisgICAgfSk7Cit9CisKK3ZvaWQgRmlsZVN5c3RlbUZp
bGVIYW5kbGU6OnRydW5jYXRlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBh
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSwgRE9NUHJvbWlz
ZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3sKKyAgICBjb25uZWN0aW9uKCkudHJ1bmNhdGUo
aWRlbnRpZmllcigpLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBzaXplLCBbcHJvbWlzZSA9IFdU
Rk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgcHJvbWlzZS5z
ZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKKyAgICB9KTsKK30KKwordm9pZCBGaWxlU3lzdGVtRmls
ZUhhbmRsZTo6Zmx1c2goRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vz
c0hhbmRsZUlkZW50aWZpZXIsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCit7
CisgICAgY29ubmVjdGlvbigpLmZsdXNoKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRp
ZmllciwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7
CisgICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7CisgICAgfSk7Cit9CisK
K3ZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNsb3NlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGNv
bm5lY3Rpb24oKS5jbG9zZShpZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbUZpbGVIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCmluZGV4IDI1MDA1YzIxMzM4YmU3ODZhOTlmMjBi
OGZhYWRlM2MxMmE3YWRjZDUuLmFmY2VhMWY3MDEzNzkwOGZlMWM3NDBlMWZmZWViMWRlNzgxNDQx
NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9G
aWxlU3lzdGVtRmlsZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCkBAIC0yNiwxMCArMjYsMTMgQEAKICNw
cmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRmlsZVN5c3RlbUhhbmRsZS5oIgorI2luY2x1ZGUgIkZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIEZpbGU7CitjbGFzcyBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTsKK3Rl
bXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKIAogY2xhc3MgRmlsZVN5c3RlbUZp
bGVIYW5kbGUgZmluYWwgOiBwdWJsaWMgRmlsZVN5c3RlbUhhbmRsZSB7CiAgICAgV1RGX01BS0Vf
SVNPX0FMTE9DQVRFRChGaWxlU3lzdGVtRmlsZUhhbmRsZSk7CkBAIC0zNyw2ICs0MCwxMiBAQCBw
dWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxGaWxlU3lzdGVtRmlsZUhhbmRs
ZT4gY3JlYXRlKFN0cmluZyYmLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgUmVmPEZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJik7CiAgICAgdm9pZCBnZXRGaWxlKERPTVByb21pc2VE
ZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZT4+JiYpOwogCisgICAgdm9pZCBjcmVhdGVTeW5jQWNj
ZXNzSGFuZGxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGU+PiYmKTsKKyAgICB2b2lkIGdldFNpemUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGVJZGVudGlmaWVyLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMVW5zaWduZWRMb25nTG9uZz4m
Jik7CisgICAgdm9pZCB0cnVuY2F0ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIsIHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7
CisgICAgdm9pZCBmbHVzaChGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIERP
TVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKyAgICB2b2lkIGNsb3NlKEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25P
cjx2b2lkPiYmKT4mJik7CisKIHByaXZhdGU6CiAgICAgRmlsZVN5c3RlbUZpbGVIYW5kbGUoU3Ry
aW5nJiYsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uPiYmKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaWRsIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmlkbAppbmRleCA5
ZTZhYTg4NTZlZDk3YjZjYmE0NjM4NTA1YWZhYTFlNTVhNmQ5NWY1Li5iYzFjZWUyZTFjNDNiNDNk
NzdhMTFkOWI0ZjZmYTBmZTE5ZmQ3MTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5p
ZGwKQEAgLTIzLDExICsyMywxMyBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgogICovCiAKKy8vIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vZmlsZS1zeXN0ZW0tYWNjZXNzLyNh
cGktZmlsZXN5c3RlbWhhbmRsZQorCiBbCiAgICAgRW5hYmxlZEJ5U2V0dGluZz1GaWxlU3lzdGVt
QWNjZXNzRW5hYmxlZCwKICAgICBFeHBvc2VkPShXaW5kb3csV29ya2VyKSwKICAgICBTZWN1cmVD
b250ZXh0CiBdIGludGVyZmFjZSBGaWxlU3lzdGVtRmlsZUhhbmRsZSA6IEZpbGVTeXN0ZW1IYW5k
bGUgewogICAgIFByb21pc2U8RmlsZT4gZ2V0RmlsZSgpOwotICAgIC8vIEZJWE1FOiBhZGQgUHJv
bWlzZTxGaWxlU3lzdGVtV3JpdGFibGVGaWxlU3RyZWFtPiBjcmVhdGVXcml0YWJsZShvcHRpb25h
bCBGaWxlU3lzdGVtQ3JlYXRlV3JpdGFibGVPcHRpb25zIG9wdGlvbnMpOworICAgIFtFbmFibGVk
QnlTZXR0aW5nPUFjY2Vzc0hhbmRsZUVuYWJsZWQsIEV4cG9zZWQ9V29ya2VyXSBQcm9taXNlPEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPiBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKCk7CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IGU2MDVhNjdkOTJh
YjQzNmZkNjQ4M2UzNzhiNmY2MzhiNGQ4MWFhMGQuLjRjMGYzYjAwZmEyZGNmODY2ODUzYWViNjE0
MGVjNjRhMzczNWRhNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNs
dWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KIApAQCAtMzgsMTUgKzM5LDI0IEBAIHRl
bXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKIGNsYXNzIEZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24+IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5GaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24oKSB7IH0KKwogICAgIHVzaW5nIFNhbWVFbnRyeUNhbGxiYWNrID0gQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjxib29sPiYmKT47CiAgICAgdXNpbmcgR2V0SGFu
ZGxlQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPEZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyPiYmKT47Ci0gICAgdXNpbmcgUmVtb3ZlRW50cnlDYWxsYmFjayA9
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+OwogICAgIHVzaW5n
IFJlc29sdmVDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8VmVj
dG9yPFN0cmluZz4+JiYpPjsKKyAgICB1c2luZyBHZXRBY2Nlc3NIYW5kbGVDYWxsYmFjayA9IENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyPiYmKT47CisgICAgdXNpbmcgVm9pZENhbGxiYWNrID0gQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT47CisgICAgdXNpbmcgSW50ZWdlckNhbGxi
YWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx1aW50NjRfdD4mJik+Owor
CiAgICAgdmlydHVhbCB2b2lkIGlzU2FtZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
LCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgU2FtZUVudHJ5Q2FsbGJhY2smJikgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBnZXRGaWxlSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIEdldEhhbmRsZUNh
bGxiYWNrJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0RGlyZWN0b3J5SGFuZGxlKEZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZO
ZWNlc3NhcnksIEdldEhhbmRsZUNhbGxiYWNrJiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcmVt
b3ZlRW50cnkoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwg
Ym9vbCBkZWxldGVSZWN1cnNpdmVseSwgUmVtb3ZlRW50cnlDYWxsYmFjayYmKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIHJlbW92ZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHksIFZvaWRDYWxsYmFjayYmKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlc29sdmUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIs
IEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZXNvbHZlQ2FsbGJhY2smJikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyLCBHZXRBY2Nlc3NIYW5kbGVDYWxsYmFjayYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGdldFNpemUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlSWRlbnRpZmllciwgSW50ZWdlckNhbGxiYWNrJiYpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgdHJ1bmNhdGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSwgVm9pZENhbGxiYWNrJiYpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgZmx1c2goRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgVm9pZENhbGxiYWNrJiYpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgY2xvc2UoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgVm9pZENhbGxiYWNrJiYpID0gMDsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZhZDRiOWE4NGI4NDlkNWJjZTQ3YzM0YTNmMGI2ZDYxZGU3
NmQyYWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwCkBAIC0wLDAgKzEsODcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGUuaCIKKworI2luY2x1ZGUgIkJ1ZmZlclNvdXJjZS5oIgorI2luY2x1ZGUg
IkV4Y2VwdGlvbk9yLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbUZpbGVIYW5kbGUuaCIKKyNpbmNs
dWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFu
ZGxlci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZjxGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZT4gRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZShGaWxlU3lzdGVtRmls
ZUhhbmRsZSYgc291cmNlLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRl
bnRpZmllcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZShzb3VyY2UsIGlkZW50aWZpZXIpKTsKK30KKworRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiBz
b3VyY2UsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQor
ICAgIDogbV9zb3VyY2Uoc291cmNlKQorICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCit7
Cit9CisKK0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjp+RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGUoKQoreworICAgIGlmICghbV9pc0Nsb3NlZCkKKyAgICAgICAgbV9zb3VyY2UtPmNsb3Nl
KG1faWRlbnRpZmllciwgW10oYXV0bykgeyB9KTsKK30KKwordm9pZCBGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZTo6dHJ1bmNhdGUodW5zaWduZWQgbG9uZyBsb25nIHNpemUsIERPTVByb21pc2VE
ZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCit7CisgICAgbV9zb3VyY2UtPnRydW5jYXRlKG1faWRl
bnRpZmllciwgc2l6ZSwgV1RGTW92ZShwcm9taXNlKSk7Cit9CisKK3ZvaWQgRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGU6OmdldFNpemUoRE9NUHJvbWlzZURlZmVycmVkPElETFVuc2lnbmVkTG9u
Z0xvbmc+JiYgcHJvbWlzZSkKK3sKKyAgICBtX3NvdXJjZS0+Z2V0U2l6ZShtX2lkZW50aWZpZXIs
IFdURk1vdmUocHJvbWlzZSkpOworfQorCit2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
OjpmbHVzaChET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQoreworICAgIG1fc291
cmNlLT5mbHVzaChtX2lkZW50aWZpZXIsIFdURk1vdmUocHJvbWlzZSkpOworfQorCit2b2lkIEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZShET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4m
JiBwcm9taXNlKQoreworICAgIGlmIChtX2lzQ2xvc2VkKQorICAgICAgICByZXR1cm4gcHJvbWlz
ZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CisKKyAgICBtX3NvdXJj
ZS0+Y2xvc2UobV9pZGVudGlmaWVyLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHBy
b21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAg
IGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAgIHdlYWtUaGlzLT5kaWRDbG9zZSgpOworCisgICAg
ICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7CisgICAgfSk7Cit9CisKK3ZvaWQg
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmRpZENsb3NlKCkKK3sKKyAgICBtX2lzQ2xvc2Vk
ID0gdHJ1ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOWU0MTU3YjY1NDFiOTNlNmVhNWZlMDIz
N2YwY2YyMTVkMDNjM2JmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKQEAgLTAsMCAr
MSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiSURMVHlwZXMuaCIKKyNp
bmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZp
bGVTeXN0ZW1GaWxlSGFuZGxlOwordGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIERPTVByb21pc2VE
ZWZlcnJlZDsKKworY2xhc3MgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUgOiBwdWJsaWMgUmVm
Q291bnRlZDxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0
cjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4geworcHVibGljOgorICAgIHN0cnVjdCBGaWxl
c3lzdGVtUmVhZFdyaXRlT3B0aW9ucyB7CisgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBhdDsK
KyAgICB9OworCisgICAgc3RhdGljIFJlZjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4gY3Jl
YXRlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyKTsKKyAgICB+RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoKTsKKworICAgIHZvaWQg
dHJ1bmNhdGUodW5zaWduZWQgbG9uZyBsb25nIHNpemUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lk
PiYmKTsKKyAgICB2b2lkIGdldFNpemUoRE9NUHJvbWlzZURlZmVycmVkPElETFVuc2lnbmVkTG9u
Z0xvbmc+JiYpOworICAgIHZvaWQgZmx1c2goRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwor
ICAgIHZvaWQgY2xvc2UoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOworICAgIHZvaWQgZGlk
Q2xvc2UoKTsKKworcHJpdmF0ZToKKyAgICBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZShGaWxl
U3lzdGVtRmlsZUhhbmRsZSYsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcik7
CisKKyAgICBSZWY8RmlsZVN5c3RlbUZpbGVIYW5kbGU+IG1fc291cmNlOworICAgIEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CisgICAgYm9vbCBtX2lz
Q2xvc2VkIHsgZmFsc2UgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjExMjA2NGE2ZGY2
MTFjNDEyMWUyNWM3MTAyZjAzMzAzY2U0NDk0YWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGUuaWRsCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEJ5U2V0
dGluZz1BY2Nlc3NIYW5kbGVFbmFibGVkLAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUs
CisgICAgRXhwb3NlZD1EZWRpY2F0ZWRXb3JrZXIsCisgICAgU2VjdXJlQ29udGV4dAorXSBpbnRl
cmZhY2UgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUgeworICAgIFByb21pc2U8dW5kZWZpbmVk
PiB0cnVuY2F0ZShbRW5mb3JjZVJhbmdlXSB1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSk7CisgICAg
UHJvbWlzZTx1bnNpZ25lZCBsb25nIGxvbmc+IGdldFNpemUoKTsKKyAgICBQcm9taXNlPHVuZGVm
aW5lZD4gZmx1c2goKTsKKyAgICBQcm9taXNlPHVuZGVmaW5lZD4gY2xvc2UoKTsKK307CisKK2Rp
Y3Rpb25hcnkgRmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMgeworICAgIFtFbmZvcmNlUmFuZ2Vd
IHVuc2lnbmVkIGxvbmcgbG9uZyBhdDsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzEzNTFiZjJkOTRlNWYz
YTdlNjFjNjk5Y2FiODI3YTE3OGI2MTc1ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIuaApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2VudW0gRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyVHlwZSB7IH07Cit1
c2luZyBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgPSBPYmplY3RJZGVudGlm
aWVyPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllclR5cGU+OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggNDVlYjNlYzk1Yjc2NTFlN2MxNWUzMGE2OTljNDc0YjY1
NTJkNDNjZC4uZmE3ZjY2OTM1NzE2MGI3OTFkYzI1YTFhMzIwODNkYTI2OTg1NjZiNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAg
LTY0LDcgKzY0LDcgQEAgdm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnNj
b3BlQ2xvc2VkKCkKICAgICBmb3IgKGF1dG8mIGNhbGxiYWNrIDogZ2V0SGFuZGxlQ2FsbGJhY2tz
LnZhbHVlcygpKQogICAgICAgICBjYWxsYmFjayhFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJv
ciB9KTsKIAotICAgIGF1dG8gcmVtb3ZlRW50cnlDYWxsYmFja3MgPSBzdGQ6OmV4Y2hhbmdlKG1f
cmVtb3ZlRW50cnlDYWxsYmFja3MsIHsgfSk7CisgICAgYXV0byByZW1vdmVFbnRyeUNhbGxiYWNr
cyA9IHN0ZDo6ZXhjaGFuZ2UobV92b2lkQ2FsbGJhY2tzLCB7IH0pOwogICAgIGZvciAoYXV0byYg
Y2FsbGJhY2sgOiByZW1vdmVFbnRyeUNhbGxiYWNrcy52YWx1ZXMoKSkKICAgICAgICAgY2FsbGJh
Y2soRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CiAKQEAgLTE0NywxOSArMTQ3LDE5
IEBAIHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpkaWRHZXRIYW5kbGUo
Q2FsbGJhY2tJZGVudGlmaWVyIGNhbGxiYWNrCiAgICAgICAgIGNhbGxiYWNrKFdURk1vdmUocmVz
dWx0KSk7CiB9CiAKLXZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpyZW1v
dmVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHksIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbjo6UmVtb3ZlRW50cnlDYWxsYmFjayYmIGNhbGxiYWNrKQordm9pZCBXb3JrZXJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb246OnJlbW92ZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVs
eSwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJiBjYWxsYmFjaykK
IHsKICAgICBpZiAoIW1fc2NvcGUpCiAgICAgICAgIHJldHVybiBjYWxsYmFjayhFeGNlcHRpb24g
eyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKIAogICAgIGF1dG8gY2FsbGJhY2tJZGVudGlmaWVyID0g
Q2FsbGJhY2tJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUoKTsKLSAgICBtX3JlbW92ZUVu
dHJ5Q2FsbGJhY2tzLmFkZChjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUoY2FsbGJhY2spKTsK
KyAgICBtX3ZvaWRDYWxsYmFja3MuYWRkKGNhbGxiYWNrSWRlbnRpZmllciwgV1RGTW92ZShjYWxs
YmFjaykpOwogCiAgICAgY2FsbE9uTWFpblRocmVhZChbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3Jr
ZXJUaHJlYWQgPSBSZWYgeyBtX3Njb3BlLT50aHJlYWQoKSB9LCBtYWluVGhyZWFkQ29ubmVjdGlv
biA9IG1fbWFpblRocmVhZENvbm5lY3Rpb24sIGlkZW50aWZpZXIsIG5hbWUgPSBuYW1lLmlzb2xh
dGVkQ29weSgpLCBkZWxldGVSZWN1cnNpdmVseV0oKSBtdXRhYmxlIHsKICAgICAgICAgYXV0byBt
YWluVGhyZWFkQ2FsbGJhY2sgPSBbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQgPSBX
VEZNb3ZlKHdvcmtlclRocmVhZCldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgICAg
IHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbY2FsbGJhY2tJZGVudGlm
aWVyLCByZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0KV0gKGF1dG8mIHNjb3BlKSBtdXRh
YmxlIHsKICAgICAgICAgICAgICAgICBpZiAoYXV0byBjb25uZWN0aW9uID0gZG93bmNhc3Q8V29y
a2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5maWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oKSkKLSAg
ICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+ZGlkUmVtb3ZlRW50cnkoY2FsbGJhY2tJZGVu
dGlmaWVyLCBXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9u
LT5jb21wbGV0ZVZvaWRDYWxsYmFjayhjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUocmVzdWx0
KSk7CiAgICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKICAgICAg
ICAgfTsKIApAQCAtMTY3LDEyICsxNjcsNiBAQCB2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbjo6cmVtb3ZlRW50cnkoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaQogICAg
IH0pOwogfQogCi12b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6ZGlkUmVt
b3ZlRW50cnkoQ2FsbGJhY2tJZGVudGlmaWVyIGNhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9u
T3I8dm9pZD4mJiByZXN1bHQpCi17Ci0gICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX3JlbW92ZUVu
dHJ5Q2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJZGVudGlmaWVyKSkKLSAgICAgICAgY2FsbGJhY2so
V1RGTW92ZShyZXN1bHQpKTsKLX0KLQogdm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb246OnJlc29sdmUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgRmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgb3RoZXJJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb246OlJlc29sdmVDYWxsYmFjayYmIGNhbGxiYWNrKQogewogICAgIGlmICghbV9z
Y29wZSkKQEAgLTE5OSw0ICsxOTMsMTIyIEBAIHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOjpkaWRSZXNvbHZlKENhbGxiYWNrSWRlbnRpZmllciBjYWxsYmFja0lkCiAgICAg
ICAgIGNhbGxiYWNrKFdURk1vdmUocmVzdWx0KSk7CiB9CiAKK3ZvaWQgV29ya2VyRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uOjpkaWRDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKENhbGxiYWNrSWRl
bnRpZmllciBjYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlSWRlbnRpZmllcj4mJiByZXN1bHQpCit7CisgICAgaWYgKGF1dG8gY2FsbGJhY2sg
PSBtX2dldEFjY2Vzc0hhbmRsQ2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJZGVudGlmaWVyKSkKKyAg
ICAgICAgY2FsbGJhY2soV1RGTW92ZShyZXN1bHQpKTsKK30KKwordm9pZCBXb3JrZXJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb246OmNvbXBsZXRlSW50ZWdlckNhbGxiYWNrKENhbGxiYWNrSWRl
bnRpZmllciBjYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPHVpbnQ2NF90PiYmIHJlc3Vs
dCkKK3sKKyAgICBpZiAoYXV0byBjYWxsYmFjayA9IG1faW50ZWdlckNhbGxiYWNrcy50YWtlKGNh
bGxiYWNrSWRlbnRpZmllcikpCisgICAgICAgIGNhbGxiYWNrKFdURk1vdmUocmVzdWx0KSk7Cit9
CisKK3ZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjb21wbGV0ZVZvaWRD
YWxsYmFjayhDYWxsYmFja0lkZW50aWZpZXIgY2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25P
cjx2b2lkPiYmIHJlc3VsdCkKK3sKKyAgICBpZiAoYXV0byBjYWxsYmFjayA9IG1fdm9pZENhbGxi
YWNrcy50YWtlKGNhbGxiYWNrSWRlbnRpZmllcikpCisgICAgICAgIGNhbGxiYWNrKFdURk1vdmUo
cmVzdWx0KSk7Cit9CisKK3ZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpj
cmVhdGVTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0QWNjZXNzSGFuZGxlQ2FsbGJhY2sm
JiBjYWxsYmFjaykKK3sKKyAgICBpZiAoIW1fc2NvcGUpCisgICAgICAgIHJldHVybiBjYWxsYmFj
ayhFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKworICAgIGF1dG8gY2FsbGJhY2tJ
ZGVudGlmaWVyID0gQ2FsbGJhY2tJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUoKTsKKyAg
ICBtX2dldEFjY2Vzc0hhbmRsQ2FsbGJhY2tzLmFkZChjYWxsYmFja0lkZW50aWZpZXIsIFdURk1v
dmUoY2FsbGJhY2spKTsKKworICAgIGNhbGxPbk1haW5UaHJlYWQoW2NhbGxiYWNrSWRlbnRpZmll
ciwgd29ya2VyVGhyZWFkID0gUmVmIHsgbV9zY29wZS0+dGhyZWFkKCkgfSwgbWFpblRocmVhZENv
bm5lY3Rpb24gPSBtX21haW5UaHJlYWRDb25uZWN0aW9uLCBpZGVudGlmaWVyXSgpIG11dGFibGUg
eworICAgICAgICBhdXRvIG1haW5UaHJlYWRDYWxsYmFjayA9IFtjYWxsYmFja0lkZW50aWZpZXIs
IHdvcmtlclRocmVhZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKV0oYXV0byByZXN1bHQpIG11dGFi
bGUgeworICAgICAgICAgICAgd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2Rl
KFtjYWxsYmFja0lkZW50aWZpZXIsIHJlc3VsdCA9IGNyb3NzVGhyZWFkQ29weShyZXN1bHQpXSAo
YXV0byYgc2NvcGUpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGlmIChhdXRvIGNvbm5lY3Rp
b24gPSBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oc2NvcGUpLmZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbigpKQorICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLT5kaWRDcmVhdGVT
eW5jQWNjZXNzSGFuZGxlKGNhbGxiYWNrSWRlbnRpZmllciwgV1RGTW92ZShyZXN1bHQpKTsKKyAg
ICAgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOworICAgICAgICB9Owor
CisgICAgICAgIG1haW5UaHJlYWRDb25uZWN0aW9uLT5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlKGlk
ZW50aWZpZXIsIFdURk1vdmUobWFpblRocmVhZENhbGxiYWNrKSk7CisgICAgfSk7Cit9CisKK3Zv
aWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpnZXRTaXplKEZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRl
bnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b246OkludGVnZXJDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIGlmICghbV9zY29wZSkKKyAg
ICAgICAgcmV0dXJuIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOwor
CisgICAgYXV0byBjYWxsYmFja0lkZW50aWZpZXIgPSBDYWxsYmFja0lkZW50aWZpZXI6OmdlbmVy
YXRlVGhyZWFkU2FmZSgpOworICAgIG1faW50ZWdlckNhbGxiYWNrcy5hZGQoY2FsbGJhY2tJZGVu
dGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisKKyAgICBjYWxsT25NYWluVGhyZWFkKFtjYWxs
YmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFJlZiB7IG1fc2NvcGUtPnRocmVhZCgpIH0s
IG1haW5UaHJlYWRDb25uZWN0aW9uID0gbV9tYWluVGhyZWFkQ29ubmVjdGlvbiwgaWRlbnRpZmll
ciwgYWNjZXNzSGFuZGxlSWRlbnRpZmllcl0oKSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byBtYWlu
VGhyZWFkQ2FsbGJhY2sgPSBbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQgPSBXVEZN
b3ZlKHdvcmtlclRocmVhZCldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgICAgIHdv
cmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbY2FsbGJhY2tJZGVudGlmaWVy
LCByZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0KV0gKGF1dG8mIHNjb3BlKSBtdXRhYmxl
IHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBjb25uZWN0aW9uID0gZG93bmNhc3Q8V29ya2Vy
R2xvYmFsU2NvcGU+KHNjb3BlKS5maWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oKSkKKyAgICAg
ICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+Y29tcGxldGVJbnRlZ2VyQ2FsbGJhY2soY2FsbGJh
Y2tJZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAgICAgfSwgV29ya2VyUnVu
TG9vcDo6ZGVmYXVsdE1vZGUoKSk7CisgICAgICAgIH07CisKKyAgICAgICAgbWFpblRocmVhZENv
bm5lY3Rpb24tPmdldFNpemUoaWRlbnRpZmllciwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV1RG
TW92ZShtYWluVGhyZWFkQ2FsbGJhY2spKTsKKyAgICB9KTsKK30KKwordm9pZCBXb3JrZXJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnRydW5jYXRlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyIGlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nl
c3NIYW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXplLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb246OlZvaWRDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIGlmICghbV9zY29wZSkKKyAg
ICAgICAgcmV0dXJuIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOwor
CisgICAgYXV0byBjYWxsYmFja0lkZW50aWZpZXIgPSBDYWxsYmFja0lkZW50aWZpZXI6OmdlbmVy
YXRlVGhyZWFkU2FmZSgpOworICAgIG1fdm9pZENhbGxiYWNrcy5hZGQoY2FsbGJhY2tJZGVudGlm
aWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisKKyAgICBjYWxsT25NYWluVGhyZWFkKFtjYWxsYmFj
a0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFJlZiB7IG1fc2NvcGUtPnRocmVhZCgpIH0sIG1h
aW5UaHJlYWRDb25uZWN0aW9uID0gbV9tYWluVGhyZWFkQ29ubmVjdGlvbiwgaWRlbnRpZmllciwg
YWNjZXNzSGFuZGxlSWRlbnRpZmllciwgc2l6ZV0oKSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byBt
YWluVGhyZWFkQ2FsbGJhY2sgPSBbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQgPSBX
VEZNb3ZlKHdvcmtlclRocmVhZCldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgICAg
IHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbY2FsbGJhY2tJZGVudGlm
aWVyLCByZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0KV0gKGF1dG8mIHNjb3BlKSBtdXRh
YmxlIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBjb25uZWN0aW9uID0gZG93bmNhc3Q8V29y
a2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5maWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oKSkKKyAg
ICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+Y29tcGxldGVWb2lkQ2FsbGJhY2soY2FsbGJh
Y2tJZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAgICAgfSwgV29ya2VyUnVu
TG9vcDo6ZGVmYXVsdE1vZGUoKSk7CisgICAgICAgIH07CisKKyAgICAgICAgbWFpblRocmVhZENv
bm5lY3Rpb24tPnRydW5jYXRlKGlkZW50aWZpZXIsIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHNp
emUsIFdURk1vdmUobWFpblRocmVhZENhbGxiYWNrKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV29y
a2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpmbHVzaChGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciBpZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIg
YWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lk
Q2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBpZiAoIW1fc2NvcGUpCisgICAgICAgIHJldHVy
biBjYWxsYmFjayhFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKworICAgIGF1dG8g
Y2FsbGJhY2tJZGVudGlmaWVyID0gQ2FsbGJhY2tJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNh
ZmUoKTsKKyAgICBtX3ZvaWRDYWxsYmFja3MuYWRkKGNhbGxiYWNrSWRlbnRpZmllciwgV1RGTW92
ZShjYWxsYmFjaykpOworCisgICAgY2FsbE9uTWFpblRocmVhZChbY2FsbGJhY2tJZGVudGlmaWVy
LCB3b3JrZXJUaHJlYWQgPSBSZWYgeyBtX3Njb3BlLT50aHJlYWQoKSB9LCBtYWluVGhyZWFkQ29u
bmVjdGlvbiA9IG1fbWFpblRocmVhZENvbm5lY3Rpb24sIGlkZW50aWZpZXIsIGFjY2Vzc0hhbmRs
ZUlkZW50aWZpZXJdKCkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8gbWFpblRocmVhZENhbGxiYWNr
ID0gW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gV1RGTW92ZSh3b3JrZXJUaHJl
YWQpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1
bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoW2NhbGxiYWNrSWRlbnRpZmllciwgcmVzdWx0ID0gY3Jv
c3NUaHJlYWRDb3B5KHJlc3VsdCldIChhdXRvJiBzY29wZSkgbXV0YWJsZSB7CisgICAgICAgICAg
ICAgICAgaWYgKGF1dG8gY29ubmVjdGlvbiA9IGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPihz
Y29wZSkuZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKCkpCisgICAgICAgICAgICAgICAgICAg
IGNvbm5lY3Rpb24tPmNvbXBsZXRlVm9pZENhbGxiYWNrKGNhbGxiYWNrSWRlbnRpZmllciwgV1RG
TW92ZShyZXN1bHQpKTsKKyAgICAgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2Rl
KCkpOworICAgICAgICB9OworCisgICAgICAgIG1haW5UaHJlYWRDb25uZWN0aW9uLT5mbHVzaChp
ZGVudGlmaWVyLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXVEZNb3ZlKG1haW5UaHJlYWRDYWxs
YmFjaykpOworICAgIH0pOworfQorCit2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbjo6Y2xvc2UoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Vm9pZENhbGxiYWNrJiYgY2FsbGJhY2spCit7Cisg
ICAgaWYgKCFtX3Njb3BlKQorICAgICAgICByZXR1cm4gY2FsbGJhY2soRXhjZXB0aW9uIHsgSW52
YWxpZFN0YXRlRXJyb3IgfSk7CisKKyAgICBhdXRvIGNhbGxiYWNrSWRlbnRpZmllciA9IENhbGxi
YWNrSWRlbnRpZmllcjo6Z2VuZXJhdGVUaHJlYWRTYWZlKCk7CisgICAgbV92b2lkQ2FsbGJhY2tz
LmFkZChjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUoY2FsbGJhY2spKTsKKworICAgIGNhbGxP
bk1haW5UaHJlYWQoW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gUmVmIHsgbV9z
Y29wZS0+dGhyZWFkKCkgfSwgbWFpblRocmVhZENvbm5lY3Rpb24gPSBtX21haW5UaHJlYWRDb25u
ZWN0aW9uLCBpZGVudGlmaWVyLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyXSgpIG11dGFibGUgewor
ICAgICAgICBhdXRvIG1haW5UaHJlYWRDYWxsYmFjayA9IFtjYWxsYmFja0lkZW50aWZpZXIsIHdv
cmtlclRocmVhZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKV0oYXV0byByZXN1bHQpIG11dGFibGUg
eworICAgICAgICAgICAgd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFtj
YWxsYmFja0lkZW50aWZpZXIsIHJlc3VsdCA9IGNyb3NzVGhyZWFkQ29weShyZXN1bHQpXSAoYXV0
byYgc2NvcGUpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGlmIChhdXRvIGNvbm5lY3Rpb24g
PSBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oc2NvcGUpLmZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbigpKQorICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLT5jb21wbGV0ZVZvaWRD
YWxsYmFjayhjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUocmVzdWx0KSk7CisgICAgICAgICAg
ICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKKyAgICAgICAgfTsKKworICAgICAg
ICBtYWluVGhyZWFkQ29ubmVjdGlvbi0+Y2xvc2UoaWRlbnRpZmllciwgYWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgV1RGTW92ZShtYWluVGhyZWFkQ2FsbGJhY2spKTsKKyAgICB9KTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbi5oCmluZGV4IGVjNjlkMTc1YTJmNzU5ZjA2YjNmMWM1NDc0NGQ3MTBjOWU2
MWMzYWMuLjkwY2JjYmY2NzNhNTg2ZjI3NDQyZjk2NDAzNDdhOTI1MjY1MGNmYzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTQ2LDgg
KzQ2LDEwIEBAIHB1YmxpYzoKICAgICB1c2luZyBDYWxsYmFja0lkZW50aWZpZXIgPSBXb3JrZXJG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb25DYWxsYmFja0lkZW50aWZpZXI7CiAgICAgdm9pZCBk
aWRJc1NhbWVFbnRyeShDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPGJvb2w+JiYpOwog
ICAgIHZvaWQgZGlkR2V0SGFuZGxlKENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXI+JiYpOwotICAgIHZvaWQgZGlkUmVtb3ZlRW50cnkoQ2Fs
bGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25Pcjx2b2lkPiYmKTsKICAgICB2b2lkIGRpZFJlc29s
dmUoQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxWZWN0b3I8U3RyaW5nPj4mJik7Cisg
ICAgdm9pZCBkaWRDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKENhbGxiYWNrSWRlbnRpZmllciwgRXhj
ZXB0aW9uT3I8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyPiYmIHJlc3VsdCk7
CisgICAgdm9pZCBjb21wbGV0ZVZvaWRDYWxsYmFjayhDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2Vw
dGlvbk9yPHZvaWQ+JiYgcmVzdWx0KTsKKyAgICB2b2lkIGNvbXBsZXRlSW50ZWdlckNhbGxiYWNr
KENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8dWludDY0X3Q+JiYgcmVzdWx0KTsKIAog
cHJpdmF0ZToKICAgICBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oV29ya2VyR2xv
YmFsU2NvcGUmLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsKQEAgLTU2LDE1
ICs1OCwyMyBAQCBwcml2YXRlOgogICAgIHZvaWQgaXNTYW1lRW50cnkoRmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb246OlNhbWVFbnRyeUNhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgZ2V0Rmls
ZUhhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBi
b29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhh
bmRsZUNhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgZ2V0RGlyZWN0b3J5SGFuZGxlKEZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZO
ZWNlc3NhcnksIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0SGFuZGxlQ2FsbGJhY2sm
JikgZmluYWw7Ci0gICAgdm9pZCByZW1vdmVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb246OlJlbW92ZUVudHJ5Q2FsbGJhY2smJikgZmluYWw7CisgICAgdm9p
ZCByZW1vdmVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBu
YW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246
OlZvaWRDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIHJlc29sdmUoRmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb246OlJlc29sdmVDYWxsYmFjayYmKSBmaW5hbDsKIAorICAgIHZvaWQgY3JlYXRl
U3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpHZXRBY2Nlc3NIYW5kbGVDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2
b2lkIGdldFNpemUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpJbnRlZ2Vy
Q2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCB0cnVuY2F0ZShGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBz
aXplLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmKSBmaW5hbDsK
KyAgICB2b2lkIGZsdXNoKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Vm9p
ZENhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgY2xvc2UoRmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJikgZmluYWw7CisKICAgICBXZWFrUHRyPFdv
cmtlckdsb2JhbFNjb3BlPiBtX3Njb3BlOwogICAgIFJlZlB0cjxGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24+IG1fbWFpblRocmVhZENvbm5lY3Rpb247CiAgICAgSGFzaE1hcDxDYWxsYmFja0lk
ZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6U2FtZUVudHJ5Q2FsbGJhY2s+
IG1fc2FtZUVudHJ5Q2FsbGJhY2tzOwogICAgIEhhc2hNYXA8Q2FsbGJhY2tJZGVudGlmaWVyLCBG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhhbmRsZUNhbGxiYWNrPiBtX2dldEhhbmRs
ZUNhbGxiYWNrczsKLSAgICBIYXNoTWFwPENhbGxiYWNrSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpSZW1vdmVFbnRyeUNhbGxiYWNrPiBtX3JlbW92ZUVudHJ5Q2FsbGJh
Y2tzOwogICAgIEhhc2hNYXA8Q2FsbGJhY2tJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OlJlc29sdmVDYWxsYmFjaz4gbV9yZXNvbHZlQ2FsbGJhY2tzOworICAgIEhhc2hN
YXA8Q2FsbGJhY2tJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEFj
Y2Vzc0hhbmRsZUNhbGxiYWNrPiBtX2dldEFjY2Vzc0hhbmRsQ2FsbGJhY2tzOworICAgIEhhc2hN
YXA8Q2FsbGJhY2tJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRD
YWxsYmFjaz4gbV92b2lkQ2FsbGJhY2tzOworICAgIEhhc2hNYXA8Q2FsbGJhY2tJZGVudGlmaWVy
LCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkludGVnZXJDYWxsYmFjaz4gbV9pbnRlZ2Vy
Q2FsbGJhY2tzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRl
eCAxZWZmNmFlYjM5YmEwMmE3MzVmMjE0YzM0ZmQ3MGMxMDMzZTkzZjEwLi45Mzk3ODFkMDMxNDlh
NzljMGVlNDdkZmIyZTA5YjgwZTkyZWZlMDgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtNjEsNiArNjEs
NyBAQCBNb2R1bGVzL2ZldGNoL1dpbmRvd09yV29ya2VyR2xvYmFsU2NvcGVGZXRjaC5jcHAKIE1v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmNwcAogTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcAogTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuY3BwCitNb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwCiBNb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcAogTW9kdWxlcy9nZW9s
b2NhdGlvbi9HZW9Ob3RpZmllci5jcHAKIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24u
Y3BwCkBAIC0zMDQ2LDYgKzMwNDcsNyBAQCBKU0ZpbGVTeXN0ZW1FbnRyeUNhbGxiYWNrLmNwcAog
SlNGaWxlU3lzdGVtRmlsZUVudHJ5LmNwcAogSlNGaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKIEpT
RmlsZVN5c3RlbUhhbmRsZS5jcHAKK0pTRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwCiBK
U0ZpbGxNb2RlLmNwcAogSlNGb2N1c0V2ZW50LmNwcAogSlNGb2N1c09wdGlvbnMuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
NjE0YzNkNzBjMmNiMTNkZmMxYzIwY2IyNjA4NTI2NzBmNGVkN2U1YS4uNTI1YmJhYjFlMDA4MWVj
MDMyZTJhYmQyMjViMmI1Y2EyMWVmZDliZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjgxMCw2ICsyODEwLDcgQEAKIAkJOTMw
QUFDOUEyNTBFQjg0OTAwMTNEQTlGIC8qIENTU0NvbmRpdGlvblJ1bGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMEFBQzk4MjUwRUI4MTcwMDEzREE5
RiAvKiBDU1NDb25kaXRpb25SdWxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJOTMwQUFDOUYyNTBFRDQwOTAwMTNEQTlGIC8qIEpTQ1NTQ29uZGl0
aW9uUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTMwQUFDOUQyNTBFRDQwOTAwMTNEQTlGIC8qIEpTQ1NTQ29uZGl0aW9uUnVsZS5oICovOyB9Owog
CQk5MzBBQUNBMjI1MEVENDExMDAxM0RBOUYgLyogSlNDU1NHcm91cGluZ1J1bGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMEFBQ0EwMjUwRUQ0MTEw
MDEzREE5RiAvKiBKU0NTU0dyb3VwaW5nUnVsZS5oICovOyB9OworCQk5MzBFNDQ4NjI3MEMzNzIy
MDBERTdBQjcgLyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzBFNDQ4NDI3MEMzNzIx
MDBERTdBQjcgLyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTMxNTNCREExNDE4
MUY3QTAwRkNGNUJFIC8qIG1pc3NpbmdJbWFnZUAyeC5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMTUzQkQ5MTQxODFGN0EwMEZDRjVCRSAvKiBt
aXNzaW5nSW1hZ2VAMngucG5nICovOyB9OwogCQk5MzE1M0JEQzE0MTk1OUJDMDBGQ0Y1QkUgLyog
dGV4dEFyZWFSZXNpemVDb3JuZXIucG5nIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MzE1M0JEQjE0MTk1OUJCMDBGQ0Y1QkUgLyogdGV4dEFyZWFSZXNp
emVDb3JuZXIucG5nICovOyB9OwogCQk5MzE1M0JFMjE0MTk1QTU3MDBGQ0Y1QkUgLyogbWlzc2lu
Z0ltYWdlLnBuZyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTMxNTNCRTExNDE5NUE1NzAwRkNGNUJFIC8qIG1pc3NpbmdJbWFnZS5wbmcgKi87IH07CkBA
IC0yOTYzLDYgKzI5NjQsNyBAQAogCQk5M0Q2QjdBODI1NTFENDFGMDA1OEREM0EgLyogRHVtbXlT
cGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5M0Q2QjdBNjI1NTFEM0VEMDA1OEREM0EgLyogRHVtbXlTcGVlY2hS
ZWNvZ25pdGlvblByb3ZpZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJOTNEOUQ1M0MwREEyN0UxODAwNzcyMTZDIC8qIFJhbmdlQm91bmRhcnlQ
b2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNE
OUQ1M0IwREEyN0UxODAwNzcyMTZDIC8qIFJhbmdlQm91bmRhcnlQb2ludC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRTI0MUZGMEIyQjRFNDAw
MEM3MzJBMSAvKiBIVE1MRnJhbWVPd25lckVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTI0MUZFMEIyQjRFNDAwMEM3MzJBMSAvKiBIVE1M
RnJhbWVPd25lckVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQk5M0UyNjlBMjI3MEE1RDVEMDAyQzRGRjAgLyogRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzRTI2OTlGMjcwQTVENUMwMDJDNEZGMCAvKiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkz
RTJBMzA3MTIzRTlEQzAwMDlGRTEyQSAvKiBIVE1MUGFyc2VySWRpb21zLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0UyQTMwNTEyM0U5REMwMDA5RkUx
MkEgLyogSFRNTFBhcnNlcklkaW9tcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTkzRTVCMjY1MjQ1NUU5NkYwMDVDNTJEMCAvKiBBdHRyaWJ1dGVk
U3RyaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
M0U1QjI2MzI0NTVFOTZGMDA1QzUyRDAgLyogQXR0cmlidXRlZFN0cmluZy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRjE5OEU1MDgyNDVFNTkw
MDFFOUFCQyAvKiBIVE1MRG9jdW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1MjNEMjNDMDJERTQzOTYwMTg2MzVDQSAvKiBIVE1MRG9jdW1lbnQu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTE2
OTUsNiArMTE2OTcsNyBAQAogCQk5MzBBQUNBMDI1MEVENDExMDAxM0RBOUYgLyogSlNDU1NHcm91
cGluZ1J1bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDU1NHcm91cGlu
Z1J1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMwQUFDQTEyNTBFRDQxMTAw
MTNEQTlGIC8qIEpTQ1NTR3JvdXBpbmdSdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTQ1NTR3JvdXBpbmdSdWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTMwQzkwREMxOUNGOTY1MzAwRDZDMjFBIC8qIExlZ2FjeUlubGluZUl0ZXJhdG9y
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExlZ2FjeUlubGluZUl0
ZXJhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTMwRTQ0ODQyNzBDMzcy
MTAwREU3QUI3IC8qIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMxNTNCRDkxNDE4MUY3
QTAwRkNGNUJFIC8qIG1pc3NpbmdJbWFnZUAyeC5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSAibWlzc2luZ0ltYWdl
QDJ4LnBuZyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMTUzQkRCMTQxOTU5QkIw
MEZDRjVCRSAvKiB0ZXh0QXJlYVJlc2l6ZUNvcm5lci5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSB0ZXh0QXJlYVJl
c2l6ZUNvcm5lci5wbmc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMTUzQkUxMTQx
OTVBNTcwMEZDRjVCRSAvKiBtaXNzaW5nSW1hZ2UucG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRoID0gbWlzc2luZ0ltYWdl
LnBuZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExOTk0LDYgKzExOTk3LDkgQEAK
IAkJOTNFMjI3REYwQUY1ODlBRDAwRDQ4MzI0IC8qIFN1YnJlc291cmNlTG9hZGVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN1YnJlc291cmNlTG9hZGVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNFMjQxRkUwQjJCNEU0MDAwQzczMkExIC8q
IEhUTUxGcmFtZU93bmVyRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBIVE1MRnJhbWVPd25lckVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTNFMjQyNUUwQjJCNTA5NTAwQzczMkExIC8qIEhUTUxGcmFtZU93bmVyRWxlbWVudC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MRnJhbWVPd25lckVsZW1lbnQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0UyNjk5RDI3MEE1RDVCMDAyQzRG
RjAgLyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOTNFMjY5OUYyNzBBNUQ1QzAwMkM0RkYwIC8qIEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRTI2OUEwMjcw
QTVENUMwMDJDNEZGMCAvKiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRTJBMzA0MTIzRTlEQzAwMDlGRTEy
QSAvKiBIVE1MUGFyc2VySWRpb21zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEhUTUxQYXJzZXJJZGlvbXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5M0UyQTMwNTEyM0U5REMwMDA5RkUxMkEgLyogSFRNTFBhcnNlcklkaW9tcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MUGFyc2VySWRpb21zLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTkzRTVCMjU0MjQ1MzZCMUUwMDVDNTJEMCAvKiBVUkxEZWNvbXBv
c2l0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVSTERlY29t
cG9zaXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjM0MzgsNiArMjM0
NDQsMTAgQEAKIAkJCQk5MzJDOUJEOTI2REQ2MjYwMDA1M0IzREIgLyogRmlsZVN5c3RlbUhhbmRs
ZS5pZGwgKi8sCiAJCQkJOTM1NDI0MjcyNzAzQkM4ODAwNUNBNzJDIC8qIEZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLmggKi8sCiAJCQkJOTM1NDI0MjkyNzAzQkNBRDAwNUNBNzJDIC8qIEZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oICovLAorCQkJCTkzRTI2OUEwMjcwQTVENUMwMDJDNEZG
MCAvKiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAgKi8sCisJCQkJOTNFMjY5OUYyNzBB
NUQ1QzAwMkM0RkYwIC8qIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmggKi8sCisJCQkJOTNF
MjY5OUQyNzBBNUQ1QjAwMkM0RkYwIC8qIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbCAq
LywKKwkJCQk5MzBFNDQ4NDI3MEMzNzIxMDBERTdBQjcgLyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGVJZGVudGlmaWVyLmggKi8sCiAJCQkJOTM0NDNFN0IyNkU4QTZCQzAwNTg1MzhGIC8qIFN0
b3JhZ2VNYW5hZ2VyK0ZpbGVTeXN0ZW1BY2Nlc3MuaWRsICovLAogCQkJCTkzNDQzRTdEMjZFOEE2
QkMwMDU4NTM4RiAvKiBTdG9yYWdlTWFuYWdlckZpbGVTeXN0ZW1BY2Nlc3MuaCAqLywKIAkJCQk5
MzIzM0M4NTI3MDU0Qzc4MDBCQkY0MUUgLyogV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uLmNwcCAqLywKQEAgLTMyNTYwLDYgKzMyNTcwLDggQEAKIAkJCQk5MzQ0M0U4ODI2RTk5NUM0
MDA1ODUzOEYgLyogRmlsZVN5c3RlbUhhbmRsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM1NDI0
MkYyNzAzQ0E1MTAwNUNBNzJDIC8qIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5MzU0MjQzMDI3MDNDQjg2MDA1Q0E3MkMgLyogRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0UyNjlBMjI3MEE1RDVEMDAyQzRG
RjAgLyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkz
MEU0NDg2MjcwQzM3MjIwMERFN0FCNyAvKiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50
aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNUVCNjlGMEU4MURBRUIwMEIyNTk2NSAvKiBG
aWxsTGF5ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTcxMkJFNDgzMUZFODY1REQwMDIwMzFDQyAv
KiBGaWxsTW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODQ1RTcyRjgwRkQyNjFFRTAwQTg3RDc5
IC8qIEZpbHRlci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5kZXggZTgzNWRmN2ZmMGIyMjBkZWJhMDU4ZmQz
YTg0ZGY1ZDJjMjUxMzk1Yy4uMmJiOWE5MzliZmNiNmE5NzU4ODYyZjc4ODU2NmU3MmMwNGEwZTcw
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5O
YW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFt
ZXMuaApAQCAtMTI0LDYgKzEyNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhG
aWxlU3lzdGVtRmlsZUVudHJ5KSBcCiAgICAgbWFjcm8oRmlsZVN5c3RlbUZpbGVIYW5kbGUpIFwK
ICAgICBtYWNybyhGaWxlU3lzdGVtSGFuZGxlKSBcCisgICAgbWFjcm8oRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGUpIFwKICAgICBtYWNybyhHYW1lcGFkKSBcCiAgICAgbWFjcm8oR2FtZXBhZEJ1
dHRvbikgXAogICAgIG1hY3JvKEdhbWVwYWRFdmVudCkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUVycm9y
LmgKaW5kZXggNDQzYzk1MTRjZDkzMjkxM2RkZTM0YzI3ZjZiNWI1NzIwMWEwYTQxZi4uMjg4MjQ0
ZjhkZjBiYTRjNGUxYjdiMzgwZDM2MDkyZDM1YjBiNGM4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VF
cnJvci5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSA8V2Vi
Q29yZS9FeGNlcHRpb25Db2RlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9FeGNlcHRpb25Pci5oPgog
I2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMzQs
MjYgKzM0LDM3IEBAIGVudW0gY2xhc3MgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvciA6IHVpbnQ4X3Qg
ewogICAgIEZpbGVOb3RGb3VuZCwKICAgICBJbnZhbGlkTmFtZSwKICAgICBJbnZhbGlkTW9kaWZp
Y2F0aW9uLAorICAgIEludmFsaWRTdGF0ZSwKICAgICBUeXBlTWlzbWF0Y2gsCiAgICAgVW5rbm93
bgogfTsKIAotaW5saW5lIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgY29udmVydFRvRXhjZXB0aW9u
Q29kZShGaWxlU3lzdGVtU3RvcmFnZUVycm9yIGVycm9yKQoraW5saW5lIFdlYkNvcmU6OkV4Y2Vw
dGlvbiBjb252ZXJ0VG9FeGNlcHRpb24oRmlsZVN5c3RlbVN0b3JhZ2VFcnJvciBlcnJvcikKIHsK
ICAgICBzd2l0Y2ggKGVycm9yKSB7CiAgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpG
aWxlTm90Rm91bmQ6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpFeGNlcHRpb25Db2RlOjpOb3RG
b3VuZEVycm9yOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6
Tm90Rm91bmRFcnJvciB9OwogICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxp
ZE1vZGlmaWNhdGlvbjoKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGU6Oklu
dmFsaWRNb2RpZmljYXRpb25FcnJvcjsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlv
biB7IFdlYkNvcmU6OkludmFsaWRNb2RpZmljYXRpb25FcnJvciB9OwogICAgIGNhc2UgRmlsZVN5
c3RlbVN0b3JhZ2VFcnJvcjo6VHlwZU1pc21hdGNoOgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6
RXhjZXB0aW9uQ29kZTo6VHlwZUVycm9yOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0
aW9uIHsgV2ViQ29yZTo6VHlwZUVycm9yIH07CiAgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yOjpJbnZhbGlkTmFtZToKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGU6
OlVua25vd25FcnJvcjsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNv
cmU6OlVua25vd25FcnJvciwgIk5hbWUgaXMgaW52YWxpZCIgfTsKKyAgICBjYXNlIEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I6OkludmFsaWRTdGF0ZToKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4
Y2VwdGlvbiB7IFdlYkNvcmU6OkludmFsaWRTdGF0ZUVycm9yIH07CiAgICAgY2FzZSBGaWxlU3lz
dGVtU3RvcmFnZUVycm9yOjpVbmtub3duOgogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBy
ZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uQ29kZTo6VW5rbm93bkVycm9yOworICAgIHJldHVybiBX
ZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpVbmtub3duRXJyb3IgfTsKK30KKworaW5saW5l
IFdlYkNvcmU6OkV4Y2VwdGlvbk9yPHZvaWQ+IGNvbnZlcnRUb0V4Y2VwdGlvbk9yKHN0ZDo6b3B0
aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gZXJyb3IpCit7CisgICAgaWYgKCFlcnJvcikK
KyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIHJldHVybiBjb252ZXJ0VG9FeGNlcHRpb24oKmVy
cm9yKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkBAIC02Niw2ICs3Nyw3IEBAIHRlbXBs
YXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiB7
CiAgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6RmlsZU5vdEZvdW5kLAog
ICAgICAgICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWROYW1lLAogICAg
ICAgICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWRNb2RpZmljYXRpb24s
CisgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxpZFN0YXRlLAog
ICAgICAgICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlR5cGVNaXNtYXRjaCwKICAg
ICAgICAgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duCiAgICAgPjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3BwCmluZGV4IDIyYmMzZWY0ZWQyNzhhMTllMjQwNmM3
OTQwY2ZiNmM4MzhkOTJkZWMuLmM4YTAxNDEzY2IzMzE5NjUzYThlYjdlNzJmMWVlYzM0ODNjNmE2
OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxl
U3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcApAQCAtMjgsNiArMjgsNyBAQAog
CiAjaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oIgogI2luY2x1ZGUgIkZpbGVTeXN0
ZW1TdG9yYWdlTWFuYWdlci5oIgorI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIApAQCAtMTM5LDQgKzE0MCw3OSBAQCBFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwg
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OnJlc29sdgog
ICAgIHJldHVybiByZXN0UGF0aC5zcGxpdChwYXRoU2VwYXJhdG9yKTsKIH0KIAorRXhwZWN0ZWQ8
V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVt
U3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Y3JlYXRlU3luY0FjY2Vzc0hh
bmRsZSgpCit7CisgICAgaWYgKCFtX21hbmFnZXIpCisgICAgICAgIHJldHVybiBtYWtlVW5leHBl
Y3RlZChGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duKTsKKworICAgIGJvb2wgYWNxdWly
ZWQgPSBtX21hbmFnZXItPmFjcXVpcmVMb2NrRm9yRmlsZShtX3BhdGgsIG1faWRlbnRpZmllcik7
CisgICAgaWYgKCFhY3F1aXJlZCkKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWRTdGF0ZSk7CisKKyAgICBBU1NFUlQoIW1fYWN0aXZl
U3luY0FjY2Vzc0hhbmRsZSk7CisgICAgbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlID0gV2ViQ29y
ZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNh
ZmUoKTsKKyAgICByZXR1cm4gKm1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZTsKK30KKworRXhwZWN0
ZWQ8dWludDY0X3QsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlOjpnZXRTaXplKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
ciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKQoreworICAgIGlmICghbV9tYW5hZ2VyKQorICAgICAg
ICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bik7
CisKKyAgICBpZiAoIW1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSB8fCAqbV9hY3RpdmVTeW5jQWNj
ZXNzSGFuZGxlICE9IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpCisgICAgICAgIHJldHVybiBtYWtl
VW5leHBlY3RlZChGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duKTsKKworICAgIGF1dG8g
c2l6ZSA9IEZpbGVTeXN0ZW06OmZpbGVTaXplKG1fcGF0aCk7CisgICAgaWYgKCFzaXplKQorICAg
ICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93
bik7CisKKyAgICByZXR1cm4gc2l6ZS52YWx1ZSgpOworfQorCitzdGQ6Om9wdGlvbmFsPEZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjp0cnVuY2F0ZShXZWJD
b3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgdWludDY0X3Qgc2l6ZSkKK3sKKyAgICBpZiAoIW1fbWFuYWdlcikKKyAgICAgICAg
cmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd247CisKKyAgICBpZiAoIW1fYWN0
aXZlU3luY0FjY2Vzc0hhbmRsZSB8fCAqbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlICE9IGFjY2Vz
c0hhbmRsZUlkZW50aWZpZXIpCisgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9y
OjpVbmtub3duOworCisgICAgYXV0byBoYW5kbGUgPSBGaWxlU3lzdGVtOjpvcGVuRmlsZShtX3Bh
dGgsIEZpbGVTeXN0ZW06OkZpbGVPcGVuTW9kZTo6UmVhZFdyaXRlKTsKKyAgICBhdXRvIGNsb3Nl
RmlsZVNjb3BlID0gbWFrZVNjb3BlRXhpdChbJl0geworICAgICAgICBGaWxlU3lzdGVtOjpjbG9z
ZUZpbGUoaGFuZGxlKTsKKyAgICB9KTsKKworICAgIGF1dG8gcmVzdWx0ID0gRmlsZVN5c3RlbTo6
dHJ1bmNhdGVGaWxlKGhhbmRsZSwgc2l6ZSk7CisgICAgaWYgKCFyZXN1bHQpCisgICAgICAgIHJl
dHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOworCisgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKK30KKworc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxl
U3lzdGVtU3RvcmFnZUhhbmRsZTo6Zmx1c2goV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpCit7CisgICAgaWYgKCFtX21h
bmFnZXIpCisgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOwor
CisgICAgaWYgKCFtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgfHwgKm1fYWN0aXZlU3luY0FjY2Vz
c0hhbmRsZSAhPSBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKQorICAgICAgICByZXR1cm4gRmlsZVN5
c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bjsKKworICAgIC8vIEZJWE1FOiB3aGVuIHdyaXRlIG9w
ZXJhdGlvbiBpcyBpbXBsZW1lbnRlZCwgcGVyZm9ybSBhY3R1YWwgZmx1c2ggaGVyZS4KKyAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworfQorCitzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpjbG9zZShXZWJDb3JlOjpGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllcikKK3sKKyAg
ICBpZiAoIW1fbWFuYWdlcikKKyAgICAgICAgcmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6
OlVua25vd247CisKKyAgICBpZiAoIW1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSB8fCAqbV9hY3Rp
dmVTeW5jQWNjZXNzSGFuZGxlICE9IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpCisgICAgICAgIHJl
dHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOworCisgICAgbV9tYW5hZ2VyLT5y
ZWxlYXNlTG9ja0ZvckZpbGUobV9wYXRoLCBtX2lkZW50aWZpZXIpOworICAgIG1fYWN0aXZlU3lu
Y0FjY2Vzc0hhbmRsZSA9IHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmggYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaApp
bmRleCA4Nzk5MDkwN2Q5Yjg5YTUyM2Y3ZmYxZjU1MDcwYTU3MDY0MGFiM2IyLi5lNDdlZDNhMTZl
ZTk1YWIxZDE0OTkzOGQxOTdmNjQ2M2Q5NzQ5MDE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5k
bGUuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0
Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDksNiArNTAsMTIgQEAgcHVi
bGljOgogICAgIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVtb3ZlRW50
cnkoY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5KTsKICAgICBFeHBl
Y3RlZDxWZWN0b3I8U3RyaW5nPiwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzb2x2ZShXZWJD
b3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcik7CiAKKyAgICBFeHBlY3RlZDxXZWJDb3Jl
OjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I+IGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKTsKKyAgICBFeHBlY3RlZDx1aW50NjRfdCwg
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gZ2V0U2l6ZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIpOworICAgIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvcj4gdHJ1bmNhdGUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyLCB1aW50NjRfdCBzaXplKTsKKyAgICBzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9y
YWdlRXJyb3I+IGZsdXNoKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRp
Zmllcik7CisgICAgc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBjbG9zZShX
ZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpOworCiBwcml2YXRl
OgogICAgIEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxl
U3lzdGVtU3RvcmFnZUVycm9yPiByZXF1ZXN0Q3JlYXRlSGFuZGxlKElQQzo6Q29ubmVjdGlvbjo6
VW5pcXVlSUQsIFR5cGUsIFN0cmluZyYmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnkpOwog
CkBAIC01Nyw2ICs2NCw3IEBAIHByaXZhdGU6CiAgICAgVHlwZSBtX3R5cGU7CiAgICAgU3RyaW5n
IG1fcGF0aDsKICAgICBTdHJpbmcgbV9uYW1lOworICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyPiBtX2FjdGl2ZVN5bmNBY2Nlc3NI
YW5kbGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdl
TWFuYWdlci5jcHAKaW5kZXggMWI3YTUxYTJmNjg4NDE1YzM5NmI1YjQ4ZmRjMDVmOTk1ZmM2ZDNk
ZS4uYzM5NjUxYjkzMDkxMTJkZGQyMmQ4NTU5ZTY2MTAyZDRiZWEwYTc4MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFu
YWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVT
eXN0ZW1TdG9yYWdlTWFuYWdlci5jcHAKQEAgLTg3LDE1ICs4NywyMSBAQCB2b2lkIEZpbGVTeXN0
ZW1TdG9yYWdlTWFuYWdlcjo6Y29ubmVjdGlvbkNsb3NlZChJUEM6OkNvbm5lY3Rpb246OlVuaXF1
ZUlEIGNvbm5lYwogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgYXV0
byBoYW5kbGVzID0gbV9oYW5kbGVzQnlDb25uZWN0aW9uLmZpbmQoY29ubmVjdGlvbik7Ci0gICAg
aWYgKGhhbmRsZXMgPT0gbV9oYW5kbGVzQnlDb25uZWN0aW9uLmVuZCgpKQorICAgIGF1dG8gY29u
bmVjdGlvbkhhbmRsZXMgPSBtX2hhbmRsZXNCeUNvbm5lY3Rpb24uZmluZChjb25uZWN0aW9uKTsK
KyAgICBpZiAoY29ubmVjdGlvbkhhbmRsZXMgPT0gbV9oYW5kbGVzQnlDb25uZWN0aW9uLmVuZCgp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBmb3IgKGF1dG8gaGFuZGxlSWRlbnRpZmllciA6IGhh
bmRsZXMtPnZhbHVlKSB7Ci0gICAgICAgIGF1dG8gaGFuZGxlID0gbV9oYW5kbGVzLnRha2UoaGFu
ZGxlSWRlbnRpZmllcik7Ci0gICAgICAgIG1fcmVnaXN0cnkudW5yZWdpc3RlckhhbmRsZShoYW5k
bGVJZGVudGlmaWVyKTsKKyAgICBhdXRvIGlkZW50aWZpZXJzID0gY29ubmVjdGlvbkhhbmRsZXMt
PnZhbHVlOworICAgIGZvciAoYXV0byBpZGVudGlmaWVyIDogaWRlbnRpZmllcnMpIHsKKyAgICAg
ICAgYXV0byBoYW5kbGUgPSBtX2hhbmRsZXMudGFrZShpZGVudGlmaWVyKTsKKyAgICAgICAgbV9y
ZWdpc3RyeS51bnJlZ2lzdGVySGFuZGxlKGlkZW50aWZpZXIpOwogICAgIH0KLSAgICBtX2hhbmRs
ZXNCeUNvbm5lY3Rpb24ucmVtb3ZlKGhhbmRsZXMpOworCisgICAgbV9sb2NrTWFwLnJlbW92ZUlm
KFsmaWRlbnRpZmllcnNdKGF1dG8mIGVudHJ5KSB7CisgICAgICAgIHJldHVybiBpZGVudGlmaWVy
cy5jb250YWlucyhlbnRyeS52YWx1ZSk7CisgICAgfSk7CisKKyAgICBtX2hhbmRsZXNCeUNvbm5l
Y3Rpb24ucmVtb3ZlKGNvbm5lY3Rpb25IYW5kbGVzKTsKIH0KIAogRXhwZWN0ZWQ8V2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVT
eXN0ZW1TdG9yYWdlTWFuYWdlcjo6Z2V0RGlyZWN0b3J5KElQQzo6Q29ubmVjdGlvbjo6VW5pcXVl
SUQgY29ubmVjdGlvbikKQEAgLTEwNSw0ICsxMTEsMjMgQEAgRXhwZWN0ZWQ8V2ViQ29yZTo6Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0
ZW0KICAgICByZXR1cm4gY3JlYXRlSGFuZGxlKGNvbm5lY3Rpb24sIEZpbGVTeXN0ZW1TdG9yYWdl
SGFuZGxlOjpUeXBlOjpEaXJlY3RvcnksIFN0cmluZyB7IG1fcGF0aCB9LCB7IH0sIHRydWUpOwog
fQogCitib29sIEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlcjo6YWNxdWlyZUxvY2tGb3JGaWxlKGNv
bnN0IFN0cmluZyYgcGF0aCwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRl
bnRpZmllcikKK3sKKyAgICBpZiAobV9sb2NrTWFwLmNvbnRhaW5zKHBhdGgpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICBtX2xvY2tNYXAuYWRkKHBhdGgsIGlkZW50aWZpZXIpOworICAg
IHJldHVybiB0cnVlOworfQorCitib29sIEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlcjo6cmVsZWFz
ZUxvY2tGb3JGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBpZiAoYXV0byBsb2NrZWRCeUlkZW50aWZp
ZXIgPSBtX2xvY2tNYXAuZ2V0KHBhdGgpOyBsb2NrZWRCeUlkZW50aWZpZXIgPT0gaWRlbnRpZmll
cikgeworICAgICAgICBtX2xvY2tNYXAucmVtb3ZlKHBhdGgpOworICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVT
eXN0ZW1TdG9yYWdlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9y
YWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oCmluZGV4IDhiNDM4YjJlOTNkZjRhODQ0N2Mz
Yjc3NDBiYzU0Yzg3ZmNhNDMxOWYuLjFhZWJhOWRhZjc5NjhjNjhkOGZlOGIzYmU3YjY3NTUyODNk
NzYxMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9G
aWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmgKQEAgLTQzLDEyICs0MywxNSBA
QCBwdWJsaWM6CiAgICAgY29uc3QgU3RyaW5nJiBnZXRQYXRoKFdlYkNvcmU6OkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyKTsKICAgICB2b2lkIGNvbm5lY3Rpb25DbG9zZWQoSVBDOjpDb25uZWN0
aW9uOjpVbmlxdWVJRCk7CiAgICAgRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGdldERpcmVjdG9yeShJUEM6OkNvbm5l
Y3Rpb246OlVuaXF1ZUlEKTsKKyAgICBib29sIGFjcXVpcmVMb2NrRm9yRmlsZShjb25zdCBTdHJp
bmcmIHBhdGgsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyKTsKKyAgICBib29s
IHJlbGVhc2VMb2NrRm9yRmlsZShjb25zdCBTdHJpbmcmIHBhdGgsIFdlYkNvcmU6OkZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyKTsKIAogcHJpdmF0ZToKICAgICBTdHJpbmcgbV9wYXRoOwogICAg
IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkmIG1fcmVnaXN0cnk7CiAgICAgSGFzaE1h
cDxJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlELCBIYXNoU2V0PFdlYkNvcmU6OkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyPj4gbV9oYW5kbGVzQnlDb25uZWN0aW9uOwogICAgIEhhc2hNYXA8V2Vi
Q29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxGaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZT4+IG1faGFuZGxlczsKKyAgICBIYXNoTWFwPFN0cmluZywgV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXI+IG1fbG9ja01hcDsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcAppbmRleCA2N2FlYmE1MjA2
YTY2MmM2MWQ5YjBlNTZkNTU5NTA5Y2IxMmE1MDI1Li4zNjg2MTc0MjgxODBkNzg0NmIyZDYyZjA2
MGU5OWU1ZGM3YTdkZDYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcApAQCAtMjI2LDUg
KzIyNiw2MCBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6cmVzb2x2ZShXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaQogICAgIGNvbXBsZXRpb25IYW5kbGVy
KGhhbmRsZS0+cmVzb2x2ZSh0YXJnZXRJZGVudGlmaWVyKSk7CiB9CiAKK3ZvaWQgTmV0d29ya1N0
b3JhZ2VNYW5hZ2VyOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0
ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lz
dGVtU3RvcmFnZUVycm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgQVNTRVJUKCFS
dW5Mb29wOjppc01haW4oKSk7CisKKyAgICBhdXRvIGhhbmRsZSA9IG1fZmlsZVN5c3RlbVN0b3Jh
Z2VIYW5kbGVSZWdpc3RyeS0+Z2V0SGFuZGxlKGlkZW50aWZpZXIpOworICAgIGlmICghaGFuZGxl
KQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIobWFrZVVuZXhwZWN0ZWQoRmlsZVN5
c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bikpOworCisgICAgY29tcGxldGlvbkhhbmRsZXIoaGFu
ZGxlLT5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlKCkpOworfQorCit2b2lkIE5ldHdvcmtTdG9yYWdl
TWFuYWdlcjo6Z2V0U2l6ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChFeHBlY3RlZDx1aW50NjRfdCwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQoreworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgYXV0
byBoYW5kbGUgPSBtX2ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnktPmdldEhhbmRsZShp
ZGVudGlmaWVyKTsKKyAgICBpZiAoIWhhbmRsZSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25I
YW5kbGVyKG1ha2VVbmV4cGVjdGVkKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24pKTsK
KworICAgIGNvbXBsZXRpb25IYW5kbGVyKGhhbmRsZS0+Z2V0U2l6ZShhY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyKSk7Cit9CisKK3ZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjp0cnVuY2F0ZUZvckFj
Y2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVy
LCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFu
ZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6
Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3sKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAgIGF1dG8gaGFuZGxlID0g
bV9maWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5LT5nZXRIYW5kbGUoaWRlbnRpZmllcik7
CisgICAgaWYgKCFoYW5kbGUpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihGaWxl
U3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duKTsKKworICAgIGNvbXBsZXRpb25IYW5kbGVyKGhh
bmRsZS0+dHJ1bmNhdGUoYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgc2l6ZSkpOworfQorCit2b2lk
IE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Zmx1c2hGb3JBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CisK
KyAgICBhdXRvIGhhbmRsZSA9IG1fZmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeS0+Z2V0
SGFuZGxlKGlkZW50aWZpZXIpOworICAgIGlmICghaGFuZGxlKQorICAgICAgICByZXR1cm4gY29t
cGxldGlvbkhhbmRsZXIoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bik7CisKKyAgICBj
b21wbGV0aW9uSGFuZGxlcihoYW5kbGUtPmZsdXNoKGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpKTsK
K30KKwordm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmNsb3NlQWNjZXNzSGFuZGxlKFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJv
cj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWlu
KCkpOworCisgICAgYXV0byBoYW5kbGUgPSBtX2ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0
cnktPmdldEhhbmRsZShpZGVudGlmaWVyKTsKKyAgICBpZiAoIWhhbmRsZSkKKyAgICAgICAgcmV0
dXJuIGNvbXBsZXRpb25IYW5kbGVyKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24pOwor
CisgICAgY29tcGxldGlvbkhhbmRsZXIoaGFuZGxlLT5jbG9zZShhY2Nlc3NIYW5kbGVJZGVudGlm
aWVyKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmggYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2Vy
LmgKaW5kZXggMWI4MTBkZjc4ZDczZDJmZjA5ZTg0ZGUyY2NiMjJiYTA2MTgwMTFjOC4uYTgxODg1
MWZmMTQ1Mzg2OGE3NGQxNzZmYjZjYjI4ZjIxYWIzMjMxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFn
ZXIuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIk9yaWdpblN0b3JhZ2VNYW5hZ2VyLmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9DbGllbnRPcmlnaW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTY5LDYgKzcwLDExIEBAIHByaXZhdGU6CiAgICAg
dm9pZCBnZXREaXJlY3RvcnlIYW5kbGUoSVBDOjpDb25uZWN0aW9uJiwgV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIsIFN0cmluZyYmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3Nh
cnksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAgICAgdm9pZCBy
ZW1vdmVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAgICB2b2lkIHJl
c29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFZl
Y3RvcjxTdHJpbmc+LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOworICAgIHZvaWQgY3Jl
YXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CisgICAg
dm9pZCBnZXRTaXplRm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8dWludDY0X3QsIEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I+KT4mJik7CisgICAgdm9pZCB0cnVuY2F0ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0
ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKKyAgICB2b2lkIGZsdXNo
Rm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJD
b3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOworICAg
IHZvaWQgY2xvc2VBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4m
Jik7CiAKICAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKICAgICBSZWY8V29ya1F1ZXVl
PiBtX3F1ZXVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9y
YWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KaW5k
ZXggNjJlNzQwM2NiYjcwMGFkOTZiYmViZTBmZWI4MjA1YzgxNjIyNGZmNy4uNGZlYTI3NjVmZDky
YTk4MDYwY2QwNDAwNjJjNWU5NDU1YzgxOWZjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VN
YW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0zMiw0ICszMiwxMCBAQAogICAgIEdldERpcmVjdG9yeUhh
bmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdHJp
bmcgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSkgLT4gKEV4cGVjdGVkPFdlYkNvcmU6OkZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+
IHJlc3VsdCkgQXN5bmMgV2FudHNDb25uZWN0aW9uCiAgICAgUmVtb3ZlRW50cnkoV2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nIG5hbWUsIGJvb2wg
ZGVsZXRlUmVjdXJzaXZlbHkpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYwogICAgIFJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIgdGFyZ2V0SWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBX
ZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKKworICAgIENyZWF0
ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRl
bnRpZmllcikgLT4gKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
SWRlbnRpZmllciwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5j
CisgICAgR2V0U2l6ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPHVpbnQ2NF90LCBX
ZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKKyAgICBUcnVuY2F0
ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNj
ZXNzSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSkgLT4gKHN0ZDo6b3B0aW9uYWw8V2Vi
S2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCisgICAgRmx1c2hGb3JB
Y2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmll
ciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hh
bmRsZUlkZW50aWZpZXIpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6RmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvcj4gcmVzdWx0KSBBc3luYworICAgIENsb3NlQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSAtPiAoc3Rk
OjpvcHRpb25hbDxXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkg
Yi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IGVkOTRhM2Vl
NTY2OGEzNDhiYzc2YWRiZDQyYjY1MDA3MWQxYjk1MWEuLjU5NmIzZmFiNjU4NjZiZGVmNTgxMjgw
ZDkxMTYyMGMwNzRmNjdlZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJr
aXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdl
cy5weQpAQCAtMjgyLDYgKzI4Miw3IEBAIGRlZiB0eXBlc190aGF0X2Nhbm5vdF9iZV9mb3J3YXJk
X2RlY2xhcmVkKCk6CiAgICAgICAgICdXZWJDb3JlOjpEcmFnQXBwbGljYXRpb25GbGFncycsCiAg
ICAgICAgICdXZWJDb3JlOjpGZXRjaElkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXInLAorICAgICAgICAnV2ViQ29yZTo6RmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMnLAog
ICAgICAgICAnV2ViQ29yZTo6SW1hZ2VEZWNvZGVySWRlbnRpZmllcicsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCmluZGV4IGIwNTRjOTIzOGJkZDJm
Y2VjODEyOWIwMzA2YjUzYmJmYjFjN2RmOTMuLjdhMjM4YWNhNGMzOGQ2NzU1NGE3ZGE2M2VlN2Rm
ZTI1NmM3YmNkOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24uY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIHZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpnZXRGaWxlSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVuCiAKICAg
ICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyOjpHZXRGaWxlSGFuZGxlKGlkZW50aWZpZXIsIG5hbWUsIGNyZWF0ZUlmTmVjZXNz
YXJ5KSwgW25hbWUsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cildKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFyZXN1bHQpCi0gICAgICAg
ICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgY29udmVy
dFRvRXhjZXB0aW9uQ29kZShyZXN1bHQuZXJyb3IoKSkgfSk7CisgICAgICAgICAgICByZXR1cm4g
Y29tcGxldGlvbkhhbmRsZXIoY29udmVydFRvRXhjZXB0aW9uKHJlc3VsdC5lcnJvcigpKSk7CiAK
ICAgICAgICAgYXV0byBpZGVudGlmaWVyID0gcmVzdWx0LnZhbHVlKCk7CiAgICAgICAgIGlmICgh
aWRlbnRpZmllci5pc1ZhbGlkKCkpCkBAIC04NCw3ICs4NCw3IEBAIHZvaWQgV2ViRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uOjpnZXREaXJlY3RvcnlIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3Rl
bUhhbmRsCiAKICAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpHZXREaXJlY3RvcnlIYW5kbGUoaWRlbnRpZmllciwgbmFt
ZSwgY3JlYXRlSWZOZWNlc3NhcnkpLCBbbmFtZSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAo
IXJlc3VsdCkKLSAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpF
eGNlcHRpb24geyBjb252ZXJ0VG9FeGNlcHRpb25Db2RlKHJlc3VsdC5lcnJvcigpKSB9KTsKKyAg
ICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihjb252ZXJ0VG9FeGNlcHRpb24ocmVz
dWx0LmVycm9yKCkpKTsKIAogICAgICAgICBhdXRvIGlkZW50aWZpZXIgPSByZXN1bHQudmFsdWUo
KTsKICAgICAgICAgaWYgKCFpZGVudGlmaWVyLmlzVmFsaWQoKSkKQEAgLTk0LDE2ICs5NCwxMyBA
QCB2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Z2V0RGlyZWN0b3J5SGFuZGxl
KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbAogICAgIH0pOwogfQogCi12b2lkIFdlYkZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbjo6cmVtb3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJl
Y3Vyc2l2ZWx5LCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlJlbW92ZUVu
dHJ5Q2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOjpyZW1vdmVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZl
bHksIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Vm9pZENhbGxiYWNrJiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCiAgICAgICAgIHJl
dHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpVbmtu
b3duRXJyb3IsICJDb25uZWN0aW9uIGlzIGxvc3QiIH0pOwogCiAgICAgbV9jb25uZWN0aW9uLT5z
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6UmVtb3Zl
RW50cnkoaWRlbnRpZmllciwgbmFtZSwgZGVsZXRlUmVjdXJzaXZlbHkpLCBbY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byBlcnJvcikgbXV0YWJsZSB7
Ci0gICAgICAgIGlmIChlcnJvcikKLSAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxl
cihXZWJDb3JlOjpFeGNlcHRpb24geyBjb252ZXJ0VG9FeGNlcHRpb25Db2RlKGVycm9yLnZhbHVl
KCkpIH0pOwotCi0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CisgICAgICAgIHJldHVy
biBjb21wbGV0aW9uSGFuZGxlcihjb252ZXJ0VG9FeGNlcHRpb25PcihlcnJvcikpOwogICAgIH0p
OwogfQogCkBAIC0xMTQsMTAgKzExMSw2NiBAQCB2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbjo6cmVzb2x2ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcgogCiAg
ICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9y
YWdlTWFuYWdlcjo6UmVzb2x2ZShpZGVudGlmaWVyLCBvdGhlcklkZW50aWZpZXIpLCBbY29tcGxl
dGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byByZXN1bHQpIG11
dGFibGUgewogICAgICAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgICAgIHJldHVybiBjb21wbGV0
aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBjb252ZXJ0VG9FeGNlcHRpb25Db2RlKHJl
c3VsdC5lcnJvcigpKSB9KTsKKyAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihj
b252ZXJ0VG9FeGNlcHRpb24ocmVzdWx0LmVycm9yKCkpKTsKKworICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihXVEZNb3ZlKHJlc3VsdC52YWx1ZSgpKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2Vi
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0QWNjZXNzSGFuZGxlQ2FsbGJhY2smJiBjb21wbGV0
aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoIW1fY29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuIGNv
bXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJv
ciwgIkNvbm5lY3Rpb24gaXMgbG9zdCIgfSk7CisKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRo
QXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpDcmVhdGVTeW5jQWNj
ZXNzSGFuZGxlKGlkZW50aWZpZXIpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgICAgICBpZiAoIXJlc3Vs
dCkKKyAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihjb252ZXJ0VG9FeGNlcHRp
b24ocmVzdWx0LmVycm9yKCkpKTsKIAogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3Zl
KHJlc3VsdC52YWx1ZSgpKSk7CiAgICAgfSk7CiB9CiAKK3ZvaWQgV2ViRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOjpnZXRTaXplKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
IGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
ciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBJbnRlZ2VyQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3sKKyAgICBpZiAoIW1fY29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRp
b25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNv
bm5lY3Rpb24gaXMgbG9zdCIgfSk7CisKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNS
ZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpHZXRTaXplRm9yQWNjZXNzSGFu
ZGxlKGlkZW50aWZpZXIsIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpLCBbY29tcGxldGlvbkhhbmRs
ZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byByZXN1bHQpIG11dGFibGUgewor
ICAgICAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxl
cihjb252ZXJ0VG9FeGNlcHRpb24ocmVzdWx0LmVycm9yKCkpKTsKKworICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihyZXN1bHQudmFsdWUoKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjp0cnVuY2F0ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSwgVm9pZENh
bGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisg
ICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJD
b3JlOjpVbmtub3duRXJyb3IsICJDb25uZWN0aW9uIGlzIGxvc3QiIH0pOworCisgICAgbV9jb25u
ZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdl
cjo6VHJ1bmNhdGVGb3JBY2Nlc3NIYW5kbGUoaWRlbnRpZmllciwgYWNjZXNzSGFuZGxlSWRlbnRp
Zmllciwgc2l6ZSksIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpXShhdXRvIGVycm9yKSBtdXRhYmxlIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY29u
dmVydFRvRXhjZXB0aW9uT3IoZXJyb3IpKTsKKyAgICB9KTsKK30KKwordm9pZCBXZWJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb246OmZsdXNoKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRl
bnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBWb2lkQ2FsbGJhY2smJiBjb21wbGV0aW9u
SGFuZGxlcikKK3sKKyAgICBpZiAoIW1fY29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuIGNvbXBs
ZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwg
IkNvbm5lY3Rpb24gaXMgbG9zdCIgfSk7CisKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5
bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpGbHVzaEZvckFjY2Vzc0hh
bmRsZShpZGVudGlmaWVyLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSwgW2NvbXBsZXRpb25IYW5k
bGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8gZXJyb3IpIG11dGFibGUgewor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjb252ZXJ0VG9FeGNlcHRpb25PcihlcnJvcikpOwor
ICAgIH0pOworfQorCit2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y2xvc2Uo
V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIsIFZvaWRDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmICghbV9jb25u
ZWN0aW9uKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0
aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0IiB9KTsKKwor
ICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3Rv
cmFnZU1hbmFnZXI6OkNsb3NlQWNjZXNzSGFuZGxlKGlkZW50aWZpZXIsIGFjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KV0oYXV0byBlcnJvcikgbXV0YWJsZSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGNvbnZl
cnRUb0V4Y2VwdGlvbk9yKGVycm9yKSk7CisgICAgfSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4
IGI2MDFiZTY0MzUzZGFmYzc3N2M2YmNlNDJiMWU5ZjI5MTM5MjMwYzIuLmUwNzJlOWY5MzIzNGU3
ZjJhNmU2OTE3NGM3ZTY5NGYzOGZhZDVhNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTUxLDkgKzUxLDE1IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBpc1NhbWVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbjo6U2FtZUVudHJ5Q2FsbGJhY2smJik7CiAgICAgdm9pZCBnZXRGaWxlSGFuZGxl
KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUs
IGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbjo6R2V0SGFuZGxlQ2FsbGJhY2smJik7CiAgICAgdm9pZCBnZXREaXJlY3RvcnlIYW5kbGUo
V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwg
Ym9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uOjpHZXRIYW5kbGVDYWxsYmFjayYmKTsKLSAgICB2b2lkIHJlbW92ZUVudHJ5KFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVs
ZXRlUmVjdXJzaXZlbHksIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6UmVt
b3ZlRW50cnlDYWxsYmFjayYmKTsKKyAgICB2b2lkIHJlbW92ZUVudHJ5KFdlYkNvcmU6OkZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVj
dXJzaXZlbHksIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Vm9pZENhbGxi
YWNrJiYpOwogICAgIHZvaWQgcmVzb2x2ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6UmVzb2x2ZUNhbGxiYWNrJiYpOwogCisgICAgdm9pZCBj
cmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
LCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEFjY2Vzc0hhbmRsZUNh
bGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgZ2V0U2l6ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkludGVnZXJDYWxsYmFj
ayYmKSBmaW5hbDsKKyAgICB2b2lkIHRydW5jYXRlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIs
IHVpbnQ2NF90IHNpemUsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Vm9p
ZENhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgZmx1c2goV2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRp
ZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2sm
JikgZmluYWw7CisgICAgdm9pZCBjbG9zZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXZWJD
b3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmKSBmaW5hbDsK
KwogICAgIFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9yYWdl
Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViU3RvcmFnZUNvbm5lY3Rpb24uY3BwCmluZGV4IDJhY2I1ZmFhZjNmNDZkN2Y4NGRiYmJiODcz
MzJkMzM2NTQ5MDM3NmQuLmU3MDkwNTA3Mzk5MmFkZTRmNDk3MWE0NzYwYzAyNzM3ODM3ZmE4MTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJT
dG9yYWdlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlN0b3JhZ2VDb25uZWN0aW9uLmNwcApAQCAtNTYsNyArNTYsNyBAQCB2b2lk
IFdlYlN0b3JhZ2VDb25uZWN0aW9uOjpmaWxlU3lzdGVtR2V0RGlyZWN0b3J5KGNvbnN0IFdlYkNv
cmU6OkNsaWVudE9yaWdpbiYgbwogICAgIGF1dG8mIGNvbm5lY3Rpb24gPSBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCk7
CiAgICAgY29ubmVjdGlvbi5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9y
YWdlTWFuYWdlcjo6RmlsZVN5c3RlbUdldERpcmVjdG9yeShvcmlnaW4pLCBbY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byByZXN1bHQpIG11dGFibGUg
ewogICAgICAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFu
ZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBjb252ZXJ0VG9FeGNlcHRpb25Db2RlKHJlc3VsdC5l
cnJvcigpKSB9KTsKKyAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihjb252ZXJ0
VG9FeGNlcHRpb24ocmVzdWx0LmVycm9yKCkpKTsKIAogICAgICAgICBhdXRvIGlkZW50aWZpZXIg
PSByZXN1bHQudmFsdWUoKTsKICAgICAgICAgaWYgKCFpZGVudGlmaWVyLmlzVmFsaWQoKSkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCBiNGI2NzY4NWZjYjAxYmI3ZTU1ZWVkMjA5MGFmNzU0YjM4OTA0Y2MyLi42ZmZiMmMwZTQ4
OTBlNmRhN2UyOGUwMWMxOGJjYTE0MzE5M2U5NTZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MjEtMTAtMDYgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRk
IHN1cHBvcnQgZm9yIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzExODUKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzgzODQ3ODU5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3Jlc291cmNlcy9zeW5jLWFjY2Vz
cy1oYW5kbGUtYmFzaWNzLmpzOiBBZGRlZC4KKyAgICAgICAgKGZpbmlzaFRlc3QpOgorICAgICAg
ICAoZ2V0RGlyZWN0b3J5KToKKyAgICAgICAgKiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3lu
Yy1hY2Nlc3MtaGFuZGxlLWJhc2ljcy13b3JrZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLWJhc2ljcy13
b3JrZXIuaHRtbDogQWRkZWQuCisKIDIwMjEtMTAtMDUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZy
YXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI4MzMzNSk6IE1vbWVudHVt
IHNjcm9sbGluZyBpcyBubyBsb25nZXIgbG9ja2VkIHRvIGFuIGF4aXMKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nCmluZGV4IDdjNGNmN2I0YTllMWEzZmVkZTRhMWYwNTcwNzNmYjBlZmVjODVl
ZTYuLjViNWIwOWZlOWYxMjUyNDJhNDljY2E5MWZjM2JkNGI3YzQ1ZDY1ZmQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTEwLTA2ICBTaWh1aSBM
aXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMxMTg1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84Mzg0Nzg1OT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9maWxlLXN5c3RlbS1hY2Nlc3Mvc2FuZGJveGVkX0ZpbGVTeXN0ZW1GaWxl
SGFuZGxlLXN5bmMtYWNjZXNzLWhhbmRsZS1sb2NrLmh0dHBzLnRlbnRhdGl2ZS53b3JrZXItZXhw
ZWN0ZWQudHh0OgorCiAyMDIxLTEwLTA1ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25Ad2Vi
a2l0Lm9yZz4KIAogICAgICAgICBbY3NzLXBvc2l0aW9uLXN0aWNreV0gc2Nyb2xsSW50b1ZpZXcg
c2hvdWxkIG5vdCB0YWtlIGludG8gYWNjb3VudCBzdGlja3kgcG9zaXRpb25pbmcgb2Zmc2V0cwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
aWxlLXN5c3RlbS1hY2Nlc3Mvc2FuZGJveGVkX0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLXN5bmMtYWNj
ZXNzLWhhbmRsZS1sb2NrLmh0dHBzLnRlbnRhdGl2ZS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9maWxlLXN5c3RlbS1hY2Nl
c3Mvc2FuZGJveGVkX0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLXN5bmMtYWNjZXNzLWhhbmRsZS1sb2Nr
Lmh0dHBzLnRlbnRhdGl2ZS53b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IGI0NjI4YTdkZjIyZGZl
ODhhN2IzNzEyZmZiMzY3ZGZjY2VlZTg3MDQuLjdkYWRjMmQ0ZjA2ZDg0NGEyMTJmNjQwNGMwZDFh
YjlmNTYzNzBjYjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmlsZS1zeXN0ZW0tYWNjZXNzL3NhbmRib3hlZF9GaWxlU3lzdGVtRmlsZUhh
bmRsZS1zeW5jLWFjY2Vzcy1oYW5kbGUtbG9jay5odHRwcy50ZW50YXRpdmUud29ya2VyLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZpbGUtc3lzdGVtLWFjY2Vzcy9zYW5kYm94ZWRfRmlsZVN5c3RlbUZpbGVIYW5kbGUtc3luYy1h
Y2Nlc3MtaGFuZGxlLWxvY2suaHR0cHMudGVudGF0aXZlLndvcmtlci1leHBlY3RlZC50eHQKQEAg
LTEsNCArMSw0IEBACiAKLUZBSUwgVGhlcmUgY2FuIG9ubHkgYmUgb25lIG9wZW4gYWNjZXNzIGhh
bmRsZSBhdCBhbnkgZ2l2ZW4gdGltZSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24g
d2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IGZpbGVIYW5kbGUuY3JlYXRlU3luY0FjY2Vz
c0hhbmRsZSBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdmaWxlSGFuZGxlLmNyZWF0ZVN5bmNBY2Nl
c3NIYW5kbGUoKScsICdmaWxlSGFuZGxlLmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUnIGlzIHVuZGVm
aW5lZCkiCi1GQUlMIEFuIGFjY2VzcyBoYW5kbGUgZnJvbSBvbmUgZmlsZSBkb2VzIG5vdCBpbnRl
cmZlcmUgd2l0aCB0aGUgY3JlYXRpb24gb2YgYW4gYWNjZXNzIGhhbmRsZSBvbiBhbm90aGVyIGZp
bGUgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAi
VHlwZUVycm9yOiBmb29GaWxlSGFuZGxlLmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUgaXMgbm90IGEg
ZnVuY3Rpb24uIChJbiAnZm9vRmlsZUhhbmRsZS5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlKCknLCAn
Zm9vRmlsZUhhbmRsZS5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlJyBpcyB1bmRlZmluZWQpIgorUEFT
UyBUaGVyZSBjYW4gb25seSBiZSBvbmUgb3BlbiBhY2Nlc3MgaGFuZGxlIGF0IGFueSBnaXZlbiB0
aW1lCitQQVNTIEFuIGFjY2VzcyBoYW5kbGUgZnJvbSBvbmUgZmlsZSBkb2VzIG5vdCBpbnRlcmZl
cmUgd2l0aCB0aGUgY3JlYXRpb24gb2YgYW4gYWNjZXNzIGhhbmRsZSBvbiBhbm90aGVyIGZpbGUK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3Jlc291
cmNlcy9zeW5jLWFjY2Vzcy1oYW5kbGUtYmFzaWNzLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9m
aWxlc3lzdGVtYWNjZXNzL3Jlc291cmNlcy9zeW5jLWFjY2Vzcy1oYW5kbGUtYmFzaWNzLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjk2NzEyNWE0NmRjNmI2ZWMzZmNmZWYxMzk0YTg2MDhjODY1Mjg3MmMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3MvcmVzb3Vy
Y2VzL3N5bmMtYWNjZXNzLWhhbmRsZS1iYXNpY3MuanMKQEAgLTAsMCArMSw4MSBAQAoraWYgKHRo
aXMuaW1wb3J0U2NyaXB0cykgeworICAgIGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LmpzJyk7Cit9CisKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIGJhc2lj
IGZ1bnRpb25hbGl0aWVzIG9mIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLiIpOworCit2YXIg
cm9vdEhhbmRsZSwgZmlsZUhhbmRsZSwgYWNjZXNzSGFuZGxlMSwgYWNjZXNzSGFuZGxlMiwgY3Jl
YXRlRXJyb3I7CisKK2Z1bmN0aW9uIGZpbmlzaFRlc3QoZXJyb3IpCit7CisgICAgaWYgKGVycm9y
KSB7CisgICAgICAgIHRlc3RGYWlsZWQoZXJyb3IpOworICAgIH0KKyAgICBmaW5pc2hKU1Rlc3Qo
KTsKK30KKworZnVuY3Rpb24gZ2V0RGlyZWN0b3J5KCkgeworICAgIG5hdmlnYXRvci5zdG9yYWdl
LmdldERpcmVjdG9yeSgpLnRoZW4oKGhhbmRsZSkgPT4geworICAgICAgICByb290SGFuZGxlID0g
aGFuZGxlOworICAgICAgICBjcmVhdGVGaWxlSGFuZGxlKHJvb3RIYW5kbGUpOworICAgIH0pLmNh
dGNoKChlcnJvcikgPT4geworICAgICAgICBmaW5pc2hUZXN0KGVycm9yKTsKKyAgICB9KTsKK30K
KworZnVuY3Rpb24gY3JlYXRlRmlsZUhhbmRsZShmcm9tSGFuZGxlKSB7CisgICAgZnJvbUhhbmRs
ZS5nZXRGaWxlSGFuZGxlKCJzeW5jLWFjY2Vzcy1oYW5kbGUudHh0IiwgeyAiY3JlYXRlIiA6IHRy
dWUgfSkudGhlbigoaGFuZGxlKSA9PiB7CisgICAgICAgIGZpbGVIYW5kbGUgPSBoYW5kbGU7Cisg
ICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZmlsZUhhbmRsZS5uYW1lIiwgInN5bmMtYWNj
ZXNzLWhhbmRsZS50eHQiKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJmaWxlSGFu
ZGxlLmtpbmQiLCAiZmlsZSIpOworICAgICAgICBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKGZpbGVI
YW5kbGUpOworICAgIH0pLmNhdGNoKChlcnJvcikgPT4geworICAgICAgICBmaW5pc2hUZXN0KGVy
cm9yKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShmcm9t
SGFuZGxlKSB7CisgICAgZnJvbUhhbmRsZS5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlKCkudGhlbigo
aGFuZGxlKSA9PiB7CisgICAgICAgIGFjY2Vzc0hhbmRsZTEgPSBoYW5kbGU7CisgICAgICAgIGRl
YnVnKCJhY2Nlc3NIYW5kbGUxIGlzIGNyZWF0ZWQiKTsKKyAgICAgICAgZ2V0U2l6ZShhY2Nlc3NI
YW5kbGUxKTsKKyAgICB9KS5jYXRjaCgoZXJyb3IpID0+IHsKKyAgICAgICAgZmluaXNoVGVzdChl
cnJvcik7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIGdldFNpemUoYWNjZXNzSGFuZGxlKSB7Cisg
ICAgYWNjZXNzSGFuZGxlLmdldFNpemUoKS50aGVuKChyZXN1bHQpID0+IHsKKyAgICAgICAgc2l6
ZSA9IHJlc3VsdDsKKyAgICAgICAgc2hvdWxkQmUoInNpemUiLCAiMCIpOworICAgICAgICBjcmVh
dGVTZWNvbmRTeW5jQWNlc3NIYW5kbGUoZmlsZUhhbmRsZSk7CisgICAgfSkuY2F0Y2goKGVycm9y
KSA9PiB7CisgICAgICAgIGZpbmlzaFRlc3QoZXJyb3IpOworICAgIH0pOworfQorCitmdW5jdGlv
biBjcmVhdGVTZWNvbmRTeW5jQWNlc3NIYW5kbGUoZnJvbUhhbmRsZSkgeworICAgIGZyb21IYW5k
bGUuY3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpLnRoZW4oKGhhbmRsZSkgPT4geworICAgICAgICBh
Y2Nlc3NIYW5kbGUyID0gaGFuZGxlOworICAgICAgICAvLyBTZWNvbmQgY3JlYXRpb24gc2hvdWxk
IHN1Y2NlZWQuCisgICAgICAgIGRlYnVnKCJhY2Nlc3NIYW5kbGUyIGlzIGNyZWF0ZWQiKTsKKyAg
ICAgICAgZmluaXNoVGVzdCgpOworICAgIH0pLmNhdGNoKChlcnJvcikgPT4geworICAgICAgICAv
LyBGaXJzdCBjcmVhdGlvbiBzaG91bGQgZmFpbCBhcyB0aGVyZSBpcyBhbiBhY3RpdmUgaGFuZGxl
LgorICAgICAgICBjcmVhdGVFcnJvciA9IGVycm9yOworICAgICAgICBkZWJ1ZygiYWNjZXNzSGFu
ZGxlMiBjYW5ub3QgYmUgY3JlYXRlZCIpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
ImNyZWF0ZUVycm9yLnRvU3RyaW5nKCkiLCAiSW52YWxpZFN0YXRlRXJyb3I6IFRoZSBvYmplY3Qg
aXMgaW4gYW4gaW52YWxpZCBzdGF0ZS4iKTsKKyAgICAgICAgY2xvc2UoKTsKKyAgICB9KTsKK30K
KworZnVuY3Rpb24gY2xvc2UoKSB7CisgICAgYWNjZXNzSGFuZGxlMS5jbG9zZSgpLnRoZW4oKHJl
c3VsdCkgPT4geworICAgICAgICBkZWJ1ZygiYWNjZXNzSGFuZGxlMSBpcyBjbG9zZWQiKTsKKyAg
ICAgICAgY3JlYXRlU2Vjb25kU3luY0FjZXNzSGFuZGxlKGZpbGVIYW5kbGUpOworICAgIH0pLmNh
dGNoKChlcnJvcikgPT4geworICAgICAgICBmaW5pc2hUZXN0KGVycm9yKTsKKyAgICB9KTsKK30K
KworZ2V0RGlyZWN0b3J5KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVz
eXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLWJhc2ljcy13b3JrZXItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRs
ZS1iYXNpY3Mtd29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NzRmNWQ3MTU1NzMwN2U0
YmQxNGMxNDZiYTkzYWJkNTJkYjlhNGY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1iYXNpY3Mtd29ya2Vy
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitbV29ya2VyXSBUaGlzIHRlc3QgY2hlY2tz
IGJhc2ljIGZ1bnRpb25hbGl0aWVzIG9mIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworU3RhcnRpbmcgd29ya2VyOiByZXNvdXJjZXMv
c3luYy1hY2Nlc3MtaGFuZGxlLWJhc2ljcy5qcworUEFTUyBbV29ya2VyXSBmaWxlSGFuZGxlLm5h
bWUgaXMgInN5bmMtYWNjZXNzLWhhbmRsZS50eHQiCitQQVNTIFtXb3JrZXJdIGZpbGVIYW5kbGUu
a2luZCBpcyAiZmlsZSIKK1tXb3JrZXJdIGFjY2Vzc0hhbmRsZTEgaXMgY3JlYXRlZAorUEFTUyBb
V29ya2VyXSBzaXplIGlzIDAKK1tXb3JrZXJdIGFjY2Vzc0hhbmRsZTIgY2Fubm90IGJlIGNyZWF0
ZWQKK1BBU1MgW1dvcmtlcl0gY3JlYXRlRXJyb3IudG9TdHJpbmcoKSBpcyAiSW52YWxpZFN0YXRl
RXJyb3I6IFRoZSBvYmplY3QgaXMgaW4gYW4gaW52YWxpZCBzdGF0ZS4iCitbV29ya2VyXSBhY2Nl
c3NIYW5kbGUxIGlzIGNsb3NlZAorW1dvcmtlcl0gYWNjZXNzSGFuZGxlMiBpcyBjcmVhdGVkCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhh
bmRsZS1iYXNpY3Mtd29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1h
Y2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLWJhc2ljcy13b3JrZXIuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
ZmVjMzZhNTk2MGI0YWFhMjFhMmY4MGFkMTFjZWQ0YjdlY2VkOWQ1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRs
ZS1iYXNpY3Mtd29ya2VyLmh0bWwKQEAgLTAsMCArMSw5IEBACis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHNjcmlwdD4KK3dvcmtlciA9IHN0YXJ0V29ya2VyKCdyZXNvdXJjZXMvc3luYy1h
Y2Nlc3MtaGFuZGxlLWJhc2ljcy5qcycpOzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440441</attachid>
            <date>2021-10-06 14:53:35 -0700</date>
            <delta_ts>2021-10-06 15:58:54 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-231185-20211006145334.patch</filename>
            <type>text/plain</type>
            <size>93385</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGE4NDgwMmU4NjAzYjY5ZDZiNGYwOWI2
NTQyNjY5ZTQzMTU3ZjQ1N2MuLjVhNjBlOGUzYTlhNTZkNTZlMjhmNzlhNDBkYWUxNmQ1OWM5Njg5
OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEtMTAtMDYgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzExODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzODQ3ODU5PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgKiBTY3JpcHRzL1ByZWZlcmVuY2Vz
L1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWw6CisgICAgICAgICogd3RmL0ZpbGVTeXN0
ZW0uaDoKKyAgICAgICAgKiB3dGYvZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHA6CisgICAgICAgIChX
VEY6OkZpbGVTeXN0ZW1JbXBsOjpmbHVzaEZpbGUpOgorICAgICAgICAqIHd0Zi9wb3NpeC9GaWxl
U3lzdGVtUE9TSVguY3BwOgorICAgICAgICAoV1RGOjpGaWxlU3lzdGVtSW1wbDo6Zmx1c2hGaWxl
KToKKyAgICAgICAgKiB3dGYvd2luL0ZpbGVTeXN0ZW1XaW4uY3BwOgorICAgICAgICAoV1RGOjpG
aWxlU3lzdGVtSW1wbDo6Zmx1c2hGaWxlKToKKwogMjAyMS0xMC0wNSAgRGF2aWQgS2lsemVyICA8
ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZvbGxvdy11cCAjMjogV1RGOjpSZXRhaW5Q
dHI8PiBhbGxvd3MgYXNzaWdubWVudCBvZiB0d28gcG9pbnRlciB0eXBlcyB0aGF0IGFyZSBub3Qg
YXNzaWduYWJsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDM0M2IyNzYyNmM4YzJjY2JhNjY3NTAwYmE3ODFmYjJk
YzYyYTAyNWMuLmNjYmVjN2ExMTQ1NzE5MDNhMjgzMzIyMzJkOWM5NjUyNTNmZTJkZTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw2MiBAQAorMjAyMS0xMC0wNiAgU2lodWkgTGl1ICA8c2lodWlfbGl1
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMTE4NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODM4NDc4NTk+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICBJbXBsZW1lbnQgYmFzaWMgc3VwcG9y
dCBmb3IgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUgYXMgcHJvcG9zYWw6CisgICAgICAgIGh0
dHBzOi8vZ2l0aHViLmNvbS9XSUNHL2ZpbGUtc3lzdGVtLWFjY2Vzcy9ibG9iL21haW4vQWNjZXNz
SGFuZGxlLm1kCisKKyAgICAgICAgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUgY2FuIGJlIGNy
ZWF0ZWQgdmlhIEZpbGVTeXN0ZW1GaWxlSGFuZGxlLCBhbmQgaXQgY29tbXVpY2F0ZXMgd2l0aCBi
YWNrZW5kIHZpYSAKKyAgICAgICAgRmlsZVN5c3RlbUZpbGVIYW5kbGUuCisKKyAgICAgICAgVGVz
dDogc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1iYXNpY3Mtd29y
a2VyLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRT
b3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0
LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBI
ZWFkZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lz
dGVtRmlsZUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRs
ZTo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVt
RmlsZUhhbmRsZTo6Z2V0U2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhh
bmRsZTo6dHJ1bmNhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6
OmZsdXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjbG9zZSk6
CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxl
Lmg6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFu
ZGxlLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uLmg6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6fkZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlOjp0cnVuY2F0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZTo6Z2V0U2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZTo6Zmx1c2gpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU6OmNsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlOjpkaWRDbG9zZSk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5pZGw6IEFkZGVkLgorICAgICAg
ICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dv
cmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
b3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnNjb3BlQ2xvc2VkKToKKyAgICAgICAg
KFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6cmVtb3ZlRW50cnkp
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpk
aWRDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y29tcGxldGVJbnRlZ2VyQ2FsbGJhY2spOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjb21wbGV0ZVZv
aWRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpnZXRTaXplKToKKyAgICAgICAgKFdlYkNv
cmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6dHJ1bmNhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpmbHVzaCk6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNsb3Nl
KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6
ZGlkUmVtb3ZlRW50cnkpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBTb3Vy
Y2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oOgorCiAyMDIxLTEwLTA1
ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JF
U1NJT04gKHIyODMzMzUpOiBNb21lbnR1bSBzY3JvbGxpbmcgaXMgbm8gbG9uZ2VyIGxvY2tlZCB0
byBhbiBheGlzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY4NWRmM2YwYWUzYjlmMGM2M2FhN2M5MTNlODI2MjcyZmE1
ZmEzZTMuLjM1NDViMTUwMGJjZGEyZDZhOGRjZmJkZTljMGUyMzYyZjE2ODdjY2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNTQgQEAKKzIwMjEtMTAtMDYgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBs
ZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzEx
ODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzODQ3ODU5PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgQ3VycmVudGx5IHdlIG9ubHkgYWxsb3cgb25l
IG9wZW4gYWNjZXNzIGhhbmRsZSBvbiBvbmUgZmlsZS4gU2Vjb25kIGFjY2VzcyBoYW5kbGUgY2Fu
IGJlIGNyZWF0ZWQgYWZ0ZXIgdGhlIGZpcnN0CisgICAgICAgIGlzIGNsb3NlZC4KKworICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oOgorICAg
ICAgICAoV2ViS2l0Ojpjb252ZXJ0VG9FeGNlcHRpb24pOgorICAgICAgICAoV2ViS2l0Ojpjb252
ZXJ0VG9FeGNlcHRpb25Pcik6CisgICAgICAgIChXZWJLaXQ6OmNvbnZlcnRUb0V4Y2VwdGlvbkNv
ZGUpOiBEZWxldGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3Rl
bVN0b3JhZ2VIYW5kbGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhh
bmRsZTo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlOjpnZXRTaXplKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGU6OnRydW5jYXRlKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3Jh
Z2VIYW5kbGU6OmZsdXNoKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5k
bGU6OmNsb3NlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1T
dG9yYWdlSGFuZGxlLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lz
dGVtU3RvcmFnZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFn
ZU1hbmFnZXI6OmNvbm5lY3Rpb25DbG9zZWQpOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVt
U3RvcmFnZU1hbmFnZXI6OmFjcXVpcmVMb2NrRm9yRmlsZSk6CisgICAgICAgIChXZWJLaXQ6OkZp
bGVTeXN0ZW1TdG9yYWdlTWFuYWdlcjo6cmVsZWFzZUxvY2tGb3JGaWxlKToKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpjcmVhdGVTeW5jQWNjZXNzSGFu
ZGxlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpnZXRTaXplRm9y
QWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjp0
cnVuY2F0ZUZvckFjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTdG9yYWdl
TWFuYWdlcjo6Zmx1c2hGb3JBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
U3RvcmFnZU1hbmFnZXI6OmNsb3NlQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAodHlwZXNfdGhhdF9jYW5u
b3RfYmVfZm9yd2FyZF9kZWNsYXJlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldEZpbGVIYW5kbGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldERpcmVjdG9yeUhh
bmRsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6
cmVtb3ZlRW50cnkpOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb246OnJlc29sdmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldFNpemUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnRydW5jYXRlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpmbHVzaCk6CisgICAgICAgIChXZWJL
aXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y2xvc2UpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9yYWdlQ29ubmVjdGlv
bi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlN0b3JhZ2VDb25uZWN0aW9uOjpmaWxlU3lzdGVt
R2V0RGlyZWN0b3J5KToKKwogMjAyMS0xMC0wNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFkZCBTUEkgdG8gbGF1bmNoIGEgc2VydmljZSBzZXJ2aWNlIHdvcmtl
ciBpbiBhIFdLV2ViVmlldyBhbmQgZXhwb3NlIHNlcnZpY2Ugd29ya2VyIHRvIGluamVjdGVkIGJ1
bmRsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZl
cmVuY2VzRXhwZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMv
V2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAppbmRleCA1MjVlNjAzNTJmNThlZTRhNTZl
YjQ4ODBjZDA1NDZkOWMwM2Q2ZmFkLi5iMTEyNjQ3NjA0ZmRhOWRhZGY0NDY0OTQ5ZjIxZWVhNzk5
ZjI1ZTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJl
ZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVy
ZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtMjYsNiArMjYsMTggQEAK
ICMgVGhleSBtdXN0IGluY2x1ZGUgYSBodW1hblJlYWRhYmxlTmFtZSBhbmQgaHVtYW5SZWFkYWJs
ZURlc2NyaXB0aW9uLiBUaGlzIGlzCiAjICAgdGhlIHRleHQgZXhwb3NlZCB0byB0aGUgdXNlciBm
cm9tIHRoZSBXZWJLaXQgY2xpZW50LgogCitBY2Nlc3NIYW5kbGVFbmFibGVkOgorICB0eXBlOiBi
b29sCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiQWNjZXNzSGFuZGxlIEFQSSIKKyAgaHVtYW5SZWFk
YWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIEFjY2Vzc0hhbmRsZSBBUEkiCisgIGRlZmF1bHRWYWx1
ZToKKyAgICBXZWJLaXRMZWdhY3k6CisgICAgICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYktpdDoK
KyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgV2ViQ29yZToKKyAgICAgIGRlZmF1bHQ6IGZhbHNl
CisKIEFjY2Vzc2liaWxpdHlPYmplY3RNb2RlbEVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgaHVt
YW5SZWFkYWJsZU5hbWU6ICJBY2Nlc3NpYmlsaXR5IE9iamVjdCBNb2RlbCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uaCBiL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0u
aAppbmRleCBjNDUwMWQxNGE3NDJhYTIxZmE2ZGM3YTczZjgzMDllYzZhODdmNGQ1Li5iMTA3Mzcw
Njk4ZTFhZDFkYTc5NGE3ZTQ2NmNjMDA3MTJhN2Q4NjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi9GaWxlU3lzdGVtLmgKKysrIGIvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5oCkBAIC0x
NTQsNiArMTU0LDcgQEAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgY2xvc2VGaWxlKFBsYXRmb3Jt
RmlsZUhhbmRsZSYpOwogLy8gUmV0dXJucyB0aGUgcmVzdWx0aW5nIG9mZnNldCBmcm9tIHRoZSBi
ZWdpbm5pbmcgb2YgdGhlIGZpbGUgaWYgc3VjY2Vzc2Z1bCwgLTEgb3RoZXJ3aXNlLgogV1RGX0VY
UE9SVF9QUklWQVRFIGxvbmcgbG9uZyBzZWVrRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUsIGxvbmcg
bG9uZyBvZmZzZXQsIEZpbGVTZWVrT3JpZ2luKTsKIFdURl9FWFBPUlRfUFJJVkFURSBib29sIHRy
dW5jYXRlRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUsIGxvbmcgbG9uZyBvZmZzZXQpOworV1RGX0VY
UE9SVF9QUklWQVRFIGJvb2wgZmx1c2hGaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSk7CiAvLyBSZXR1
cm5zIG51bWJlciBvZiBieXRlcyBhY3R1YWxseSByZWFkIGlmIHN1Y2Nlc3NmdWwsIC0xIG90aGVy
d2lzZS4KIFdURl9FWFBPUlRfUFJJVkFURSBpbnQgd3JpdGVUb0ZpbGUoUGxhdGZvcm1GaWxlSGFu
ZGxlLCBjb25zdCB2b2lkKiBkYXRhLCBpbnQgbGVuZ3RoKTsKIC8vIFJldHVybnMgbnVtYmVyIG9m
IGJ5dGVzIGFjdHVhbGx5IHdyaXR0ZW4gaWYgc3VjY2Vzc2Z1bCwgLTEgb3RoZXJ3aXNlLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAgYi9Tb3VyY2Uv
V1RGL3d0Zi9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcAppbmRleCA1NDYyNDRjNzA0MTA4NGNiNGI0
MmU5ZjBhYWViYThhMjYyOTAzZmQzLi5mODEyN2YwYmEwZjQ0ZTQ5ZWYyODU5ZTE1MTgwMDhjMWIz
MDQ4NDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9nbGliL0ZpbGVTeXN0ZW1HbGliLmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcApAQCAtMjEzLDYg
KzIxMywxMSBAQCBib29sIHRydW5jYXRlRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlLCBs
b25nIGxvbmcgb2Zmc2V0KQogICAgIHJldHVybiBnX3NlZWthYmxlX3RydW5jYXRlKEdfU0VFS0FC
TEUoZ19pb19zdHJlYW1fZ2V0X291dHB1dF9zdHJlYW0oR19JT19TVFJFQU0oaGFuZGxlKSkpLCBv
ZmZzZXQsIG51bGxwdHIsIG51bGxwdHIpOwogfQogCitib29sIGZsdXNoRmlsZShQbGF0Zm9ybUZp
bGVIYW5kbGUgaGFuZGxlKQoreworICAgIHJldHVybiBnX291dHB1dF9zdHJlYW1fZmx1c2goZ19p
b19zdHJlYW1fZ2V0X291dHB1dF9zdHJlYW0oR19JT19TVFJFQU0oaGFuZGxlKSksIG51bGxwdHIs
IG51bGxwdHIpOworfQorCiBpbnQgd3JpdGVUb0ZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRs
ZSwgY29uc3Qgdm9pZCogZGF0YSwgaW50IGxlbmd0aCkKIHsKICAgICBpZiAoIWxlbmd0aCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHAgYi9Tb3Vy
Y2UvV1RGL3d0Zi9wb3NpeC9GaWxlU3lzdGVtUE9TSVguY3BwCmluZGV4IGIxMzM4MjRlYzJhMTE1
ZWE1MGM3YzM0ZTBmMWE1ZWNlODA0MDJkNGMuLjc5NTY3MGZkNmQ4MDI3OGRmNmMxNzBiMjE2MmM0
OGI1MmU5Y2JiZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3Bvc2l4L0ZpbGVTeXN0ZW1Q
T1NJWC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvcG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNwcApA
QCAtMTE4LDYgKzExOCwxMSBAQCBib29sIHRydW5jYXRlRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUg
aGFuZGxlLCBsb25nIGxvbmcgb2Zmc2V0KQogICAgIHJldHVybiAhZnRydW5jYXRlKGhhbmRsZSwg
b2Zmc2V0KTsKIH0KIAorYm9vbCBmbHVzaEZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSkK
K3sKKyAgICByZXR1cm4gIWZzeW5jKGhhbmRsZSk7Cit9CisKIGludCB3cml0ZVRvRmlsZShQbGF0
Zm9ybUZpbGVIYW5kbGUgaGFuZGxlLCBjb25zdCB2b2lkKiBkYXRhLCBpbnQgbGVuZ3RoKQogewog
ICAgIGRvIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3dpbi9GaWxlU3lzdGVtV2luLmNw
cCBiL1NvdXJjZS9XVEYvd3RmL3dpbi9GaWxlU3lzdGVtV2luLmNwcAppbmRleCBmZmE2MjkzYzcz
ZTg0ZWVlMGJjZTEyY2M0ZDBkYTdjZGNhNjBiODkzLi4yYmM4ZjIwMTA1MWM3ZDg1YjE3YjQ0YWMy
NzM4ZDJlZDAxZjJkOTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi93aW4vRmlsZVN5c3Rl
bVdpbi5jcHAKKysrIGIvU291cmNlL1dURi93dGYvd2luL0ZpbGVTeXN0ZW1XaW4uY3BwCkBAIC0z
MDMsNiArMzAzLDEyIEBAIGJvb2wgdHJ1bmNhdGVGaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5k
bGUsIGxvbmcgbG9uZyBvZmZzZXQpCiAgICAgcmV0dXJuIFNldEZpbGVJbmZvcm1hdGlvbkJ5SGFu
ZGxlKGhhbmRsZSwgRmlsZUVuZE9mRmlsZUluZm8sICZlb2ZJbmZvLCBzaXplb2YoRklMRV9FTkRf
T0ZfRklMRV9JTkZPKSk7CiB9CiAKK2Jvb2wgZmx1c2hGaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSBo
YW5kbGUpCit7CisgICAgLy8gTm90IGltcGxlbWVudGVkLgorICAgIHJldHVybiBmYWxzZTsKK30K
KwogaW50IHdyaXRlVG9GaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUsIGNvbnN0IHZvaWQq
IGRhdGEsIGludCBsZW5ndGgpCiB7CiAgICAgaWYgKCFpc0hhbmRsZVZhbGlkKGhhbmRsZSkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CmluZGV4IDMwMzk0NzU5NzFkNGZiN2Y2ZjliZDFhMDZiOGZmMjZjYzUw
MTdjYmQuLmRmODFlYjZhNzFjY2M4NmNlMWJjOTljNjFhNWEzYmI2ZmJkMzQ0OGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CkBAIC0yOTcsNiArMjk3LDcgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExf
RklMRVMKICAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhh
bmRsZS5pZGwKICAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5k
bGUuaWRsCiAgICAgTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaWRs
CisgICAgTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
LmlkbAogICAgIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9TdG9yYWdlTWFuYWdlcitGaWxlU3lz
dGVtQWNjZXNzLmlkbAogCiAgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5pZGwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxp
c3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4
IGMwYmU4NmE3MzU0NDIyZjFmYmRhMGVhMGM2YWQzNDEzOTliZWM5MmUuLmUyZTg5NjE5MjNjMGM5
OTZiM2ZkMDgxNGNjNTAyM2I5MmY2MmY0ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTI2LDYgKzEyNiw3IEBAICQoUFJPSkVDVF9E
SVIpL01vZHVsZXMvZmV0Y2gvV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZStGZXRjaC5pZGwKICQo
UFJPSkVDVF9ESVIpL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5
SGFuZGxlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVT
eXN0ZW1GaWxlSGFuZGxlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRsCiAkKFBST0pFQ1RfRElSKS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvU3RvcmFnZU1hbmFnZXIrRmlsZVN5c3RlbUFjY2Vzcy5p
ZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkLmlkbAogJChQUk9KRUNU
X0RJUikvTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRCdXR0b24uaWRsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDIxMTEyY2UxNjQ3ZGQ1
ZDRjNmFmNjU5MThiZmIzNDJhNGRjYmNlYmIuLmY0ZjQ4MjI4YmRjNDYyMzAxN2ZkNDQ5ZDEyNjQx
NjQ4MGVlN2ZiYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91
dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0CkBAIC05MDcsNiArOTA3LDggQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNGaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRmlsZVN5c3RlbUZpbGVIYW5k
bGUuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNGaWxl
U3lzdGVtSGFuZGxlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNGaWxlU3lzdGVtSGFuZGxlLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0ZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTRmlsbE1vZGUuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU0ZpbGxNb2RlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTRm9jdXNFdmVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4
IDkyZDNjNDcxOTYwYmNjNzJlODkyOTA2M2VhZjViNTdkOTc0M2JlNTQuLmJlOGFjMjcyNDk4ZGQy
NGU2OGI2OWQ5YmQ0MjU3MDQ1NWQ5OWNlNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZQpAQCAtMTU1LDYgKzE1NSw3IEBAIEpTX0JJTkRJTkdfSURMUyA6PSBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5pZGwg
XAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxl
SGFuZGxlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbUhhbmRsZS5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvU3RvcmFnZU1hbmFnZXIrRmlsZVN5c3RlbUFjY2Vzcy5pZGwgXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWQuaWRsIFwKICAgICAkKFdlYkNv
cmUpL01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkQnV0dG9uLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpp
bmRleCAzOTRjYjNiYjZlMWEzMjcyNDk1MWIyMjY1N2VkOTU5OWZkMzc4ZjgyLi5mZjg3OGZiNWQz
Mjk4ZjUzZThiNzA2ZjhjN2E1ODZkYTlmY2NhODgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTQy
LDYgKzQyLDggQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIE1v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmgKICAgICBNb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaAogICAgIE1vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAorICAgIE1vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oCisgICAgTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
ci5oCiAgICAgTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1N0b3JhZ2VNYW5hZ2VyRmlsZVN5c3Rl
bUFjY2Vzcy5oCiAgICAgTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbi5oCiAgICAgTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbkNhbGxiYWNrSWRlbnRpZmllci5oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVI
YW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVT
eXN0ZW1GaWxlSGFuZGxlLmNwcAppbmRleCBiMjEyNTQ3YjVmZTliOWJkMjU2N2ZiMWIwOTQ4MGJi
ZGQwZjE5ZjY3Li5hNjlhNzJjNmI2OGEyZDZjZDQ1YzhmYjczNDRiYTQzYjU4NzMzMTY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bUZpbGVIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKQEAgLTI3LDcgKzI3LDkgQEAKICNpbmNsdWRl
ICJGaWxlU3lzdGVtRmlsZUhhbmRsZS5oIgogCiAjaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaCIKICNp
bmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgIkpTRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGUuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00OSw1ICs1MSw0MSBAQCB2b2lkIEZpbGVTeXN0ZW1GaWxl
SGFuZGxlOjpnZXRGaWxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZT4+JiYg
cHJvbQogICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAi
Tm90IGltcGxlbWVudGVkIl9zIH0pOwogfQogCit2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpj
cmVhdGVTeW5jQWNjZXNzSGFuZGxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+PiYmIHByb21pc2UpCit7CisgICAgY29ubmVjdGlvbigp
LmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoaWRlbnRpZmllcigpLCBbcHJvdGVjdGVkVGhpcyA9IFJl
ZiB7ICp0aGlzIH0sIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0
YWJsZSB7CisgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCisgICAgICAgICAgICBy
ZXR1cm4gcHJvbWlzZS5yZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CisKKyAgICAg
ICAgcHJvbWlzZS5zZXR0bGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZShwcm90
ZWN0ZWRUaGlzLmdldCgpLCByZXN1bHQucmV0dXJuVmFsdWUoKSkpOworICAgIH0pOworfQorCit2
b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpnZXRTaXplKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBET01Qcm9taXNlRGVmZXJyZWQ8
SURMVW5zaWduZWRMb25nTG9uZz4mJiBwcm9taXNlKQoreworICAgIGNvbm5lY3Rpb24oKS5nZXRT
aXplKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgW3Byb21pc2UgPSBXVEZN
b3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIHByb21pc2Uuc2V0
dGxlKFdURk1vdmUocmVzdWx0KSk7CisgICAgfSk7Cit9CisKK3ZvaWQgRmlsZVN5c3RlbUZpbGVI
YW5kbGU6OnRydW5jYXRlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nl
c3NIYW5kbGVJZGVudGlmaWVyLCB1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSwgRE9NUHJvbWlzZURl
ZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3sKKyAgICBjb25uZWN0aW9uKCkudHJ1bmNhdGUoaWRl
bnRpZmllcigpLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBzaXplLCBbcHJvbWlzZSA9IFdURk1v
dmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgcHJvbWlzZS5zZXR0
bGUoV1RGTW92ZShyZXN1bHQpKTsKKyAgICB9KTsKK30KKwordm9pZCBGaWxlU3lzdGVtRmlsZUhh
bmRsZTo6Zmx1c2goRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hh
bmRsZUlkZW50aWZpZXIsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCit7Cisg
ICAgY29ubmVjdGlvbigpLmZsdXNoKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmll
ciwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7Cisg
ICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7CisgICAgfSk7Cit9CisKK3Zv
aWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNsb3NlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
SWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGNvbm5l
Y3Rpb24oKS5jbG9zZShpZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbUZpbGVIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCmluZGV4IDI1MDA1YzIxMzM4YmU3ODZhOTlmMjBiOGZh
YWRlM2MxMmE3YWRjZDUuLmFmY2VhMWY3MDEzNzkwOGZlMWM3NDBlMWZmZWViMWRlNzgxNDQxNTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxl
U3lzdGVtRmlsZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCkBAIC0yNiwxMCArMjYsMTMgQEAKICNwcmFn
bWEgb25jZQogCiAjaW5jbHVkZSAiRmlsZVN5c3RlbUhhbmRsZS5oIgorI2luY2x1ZGUgIkZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIEZpbGU7CitjbGFzcyBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTsKK3RlbXBs
YXRlPHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKIAogY2xhc3MgRmlsZVN5c3RlbUZpbGVI
YW5kbGUgZmluYWwgOiBwdWJsaWMgRmlsZVN5c3RlbUhhbmRsZSB7CiAgICAgV1RGX01BS0VfSVNP
X0FMTE9DQVRFRChGaWxlU3lzdGVtRmlsZUhhbmRsZSk7CkBAIC0zNyw2ICs0MCwxMiBAQCBwdWJs
aWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxGaWxlU3lzdGVtRmlsZUhhbmRsZT4g
Y3JlYXRlKFN0cmluZyYmLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgUmVmPEZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJik7CiAgICAgdm9pZCBnZXRGaWxlKERPTVByb21pc2VEZWZl
cnJlZDxJRExJbnRlcmZhY2U8RmlsZT4+JiYpOwogCisgICAgdm9pZCBjcmVhdGVTeW5jQWNjZXNz
SGFuZGxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGU+PiYmKTsKKyAgICB2b2lkIGdldFNpemUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMVW5zaWduZWRMb25nTG9uZz4mJik7
CisgICAgdm9pZCB0cnVuY2F0ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIs
IHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7Cisg
ICAgdm9pZCBmbHVzaChGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIERPTVBy
b21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKyAgICB2b2lkIGNsb3NlKEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2
b2lkPiYmKT4mJik7CisKIHByaXZhdGU6CiAgICAgRmlsZVN5c3RlbUZpbGVIYW5kbGUoU3RyaW5n
JiYsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uPiYmKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmlkbAppbmRleCA5ZTZh
YTg4NTZlZDk3YjZjYmE0NjM4NTA1YWZhYTFlNTVhNmQ5NWY1Li5iYzFjZWUyZTFjNDNiNDNkNzdh
MTFkOWI0ZjZmYTBmZTE5ZmQ3MTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5pZGwK
QEAgLTIzLDExICsyMywxMyBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgog
ICovCiAKKy8vIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vZmlsZS1zeXN0ZW0tYWNjZXNzLyNhcGkt
ZmlsZXN5c3RlbWhhbmRsZQorCiBbCiAgICAgRW5hYmxlZEJ5U2V0dGluZz1GaWxlU3lzdGVtQWNj
ZXNzRW5hYmxlZCwKICAgICBFeHBvc2VkPShXaW5kb3csV29ya2VyKSwKICAgICBTZWN1cmVDb250
ZXh0CiBdIGludGVyZmFjZSBGaWxlU3lzdGVtRmlsZUhhbmRsZSA6IEZpbGVTeXN0ZW1IYW5kbGUg
ewogICAgIFByb21pc2U8RmlsZT4gZ2V0RmlsZSgpOwotICAgIC8vIEZJWE1FOiBhZGQgUHJvbWlz
ZTxGaWxlU3lzdGVtV3JpdGFibGVGaWxlU3RyZWFtPiBjcmVhdGVXcml0YWJsZShvcHRpb25hbCBG
aWxlU3lzdGVtQ3JlYXRlV3JpdGFibGVPcHRpb25zIG9wdGlvbnMpOworICAgIFtFbmFibGVkQnlT
ZXR0aW5nPUFjY2Vzc0hhbmRsZUVuYWJsZWQsIEV4cG9zZWQ9V29ya2VyXSBQcm9taXNlPEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlPiBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKCk7CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IGU2MDVhNjdkOTJhYjQz
NmZkNjQ4M2UzNzhiNmY2MzhiNGQ4MWFhMGQuLjRjMGYzYjAwZmEyZGNmODY2ODUzYWViNjE0MGVj
NjRhMzczNWRhNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgK
QEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIuaCIKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRl
IDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KIApAQCAtMzgsMTUgKzM5LDI0IEBAIHRlbXBs
YXRlPHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKIGNsYXNzIEZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24+IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5GaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24oKSB7IH0KKwogICAgIHVzaW5nIFNhbWVFbnRyeUNhbGxiYWNrID0gQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjxib29sPiYmKT47CiAgICAgdXNpbmcgR2V0SGFuZGxl
Q2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPEZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyPiYmKT47Ci0gICAgdXNpbmcgUmVtb3ZlRW50cnlDYWxsYmFjayA9IENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+OwogICAgIHVzaW5nIFJl
c29sdmVDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8VmVjdG9y
PFN0cmluZz4+JiYpPjsKKyAgICB1c2luZyBHZXRBY2Nlc3NIYW5kbGVDYWxsYmFjayA9IENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyPiYmKT47CisgICAgdXNpbmcgVm9pZENhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT47CisgICAgdXNpbmcgSW50ZWdlckNhbGxiYWNr
ID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx1aW50NjRfdD4mJik+OworCiAg
ICAgdmlydHVhbCB2b2lkIGlzU2FtZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgU2FtZUVudHJ5Q2FsbGJhY2smJikgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBnZXRGaWxlSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIEdldEhhbmRsZUNhbGxi
YWNrJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0RGlyZWN0b3J5SGFuZGxlKEZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNl
c3NhcnksIEdldEhhbmRsZUNhbGxiYWNrJiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcmVtb3Zl
RW50cnkoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9v
bCBkZWxldGVSZWN1cnNpdmVseSwgUmVtb3ZlRW50cnlDYWxsYmFjayYmKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHJlbW92ZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHksIFZvaWRDYWxsYmFjayYmKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIHJlc29sdmUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZXNvbHZlQ2FsbGJhY2smJikgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyLCBHZXRBY2Nlc3NIYW5kbGVDYWxsYmFjayYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdl
dFNpemUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlSWRlbnRpZmllciwgSW50ZWdlckNhbGxiYWNrJiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
dHJ1bmNhdGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSwgVm9pZENhbGxiYWNrJiYpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgZmx1c2goRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgVm9pZENhbGxiYWNrJiYpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgY2xvc2UoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgVm9pZENhbGxiYWNrJiYpID0gMDsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmZhZDRiOWE4NGI4NDlkNWJjZTQ3YzM0YTNmMGI2ZDYxZGU3NmQy
YWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwCkBAIC0wLDAgKzEsODcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGUuaCIKKworI2luY2x1ZGUgIkJ1ZmZlclNvdXJjZS5oIgorI2luY2x1ZGUgIkV4
Y2VwdGlvbk9yLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbUZpbGVIYW5kbGUuaCIKKyNpbmNsdWRl
ICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxl
ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZT4gRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZShGaWxlU3lzdGVtRmlsZUhh
bmRsZSYgc291cmNlLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRlbnRp
ZmllcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZShzb3VyY2UsIGlkZW50aWZpZXIpKTsKK30KKworRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiBzb3Vy
Y2UsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAg
IDogbV9zb3VyY2Uoc291cmNlKQorICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCit7Cit9
CisKK0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjp+RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGUoKQoreworICAgIGlmICghbV9pc0Nsb3NlZCkKKyAgICAgICAgbV9zb3VyY2UtPmNsb3NlKG1f
aWRlbnRpZmllciwgW10oYXV0bykgeyB9KTsKK30KKwordm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZTo6dHJ1bmNhdGUodW5zaWduZWQgbG9uZyBsb25nIHNpemUsIERPTVByb21pc2VEZWZl
cnJlZDx2b2lkPiYmIHByb21pc2UpCit7CisgICAgbV9zb3VyY2UtPnRydW5jYXRlKG1faWRlbnRp
Zmllciwgc2l6ZSwgV1RGTW92ZShwcm9taXNlKSk7Cit9CisKK3ZvaWQgRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGU6OmdldFNpemUoRE9NUHJvbWlzZURlZmVycmVkPElETFVuc2lnbmVkTG9uZ0xv
bmc+JiYgcHJvbWlzZSkKK3sKKyAgICBtX3NvdXJjZS0+Z2V0U2l6ZShtX2lkZW50aWZpZXIsIFdU
Rk1vdmUocHJvbWlzZSkpOworfQorCit2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpm
bHVzaChET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQoreworICAgIG1fc291cmNl
LT5mbHVzaChtX2lkZW50aWZpZXIsIFdURk1vdmUocHJvbWlzZSkpOworfQorCit2b2lkIEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZShET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBw
cm9taXNlKQoreworICAgIGlmIChtX2lzQ2xvc2VkKQorICAgICAgICByZXR1cm4gcHJvbWlzZS5y
ZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CisKKyAgICBtX3NvdXJjZS0+
Y2xvc2UobV9pZGVudGlmaWVyLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHByb21p
c2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlm
ICh3ZWFrVGhpcykKKyAgICAgICAgICAgIHdlYWtUaGlzLT5kaWRDbG9zZSgpOworCisgICAgICAg
IHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7CisgICAgfSk7Cit9CisKK3ZvaWQgRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmRpZENsb3NlKCkKK3sKKyAgICBtX2lzQ2xvc2VkID0g
dHJ1ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOWU0MTU3YjY1NDFiOTNlNmVhNWZlMDIzN2Yw
Y2YyMTVkMDNjM2JmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKQEAgLTAsMCArMSw2
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiSURMVHlwZXMuaCIKKyNpbmNs
dWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZpbGVT
eXN0ZW1GaWxlSGFuZGxlOwordGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIERPTVByb21pc2VEZWZl
cnJlZDsKKworY2xhc3MgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUgOiBwdWJsaWMgUmVmQ291
bnRlZDxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4geworcHVibGljOgorICAgIHN0cnVjdCBGaWxlc3lz
dGVtUmVhZFdyaXRlT3B0aW9ucyB7CisgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBhdDsKKyAg
ICB9OworCisgICAgc3RhdGljIFJlZjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4gY3JlYXRl
KEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyKTsKKyAgICB+RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoKTsKKworICAgIHZvaWQgdHJ1
bmNhdGUodW5zaWduZWQgbG9uZyBsb25nIHNpemUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYm
KTsKKyAgICB2b2lkIGdldFNpemUoRE9NUHJvbWlzZURlZmVycmVkPElETFVuc2lnbmVkTG9uZ0xv
bmc+JiYpOworICAgIHZvaWQgZmx1c2goRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOworICAg
IHZvaWQgY2xvc2UoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOworICAgIHZvaWQgZGlkQ2xv
c2UoKTsKKworcHJpdmF0ZToKKyAgICBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lz
dGVtRmlsZUhhbmRsZSYsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcik7CisK
KyAgICBSZWY8RmlsZVN5c3RlbUZpbGVIYW5kbGU+IG1fc291cmNlOworICAgIEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CisgICAgYm9vbCBtX2lzQ2xv
c2VkIHsgZmFsc2UgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjExMjA2NGE2ZGY2MTFj
NDEyMWUyNWM3MTAyZjAzMzAzY2U0NDk0YWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUu
aWRsCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEJ5U2V0dGlu
Zz1BY2Nlc3NIYW5kbGVFbmFibGVkLAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCisg
ICAgRXhwb3NlZD1EZWRpY2F0ZWRXb3JrZXIsCisgICAgU2VjdXJlQ29udGV4dAorXSBpbnRlcmZh
Y2UgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUgeworICAgIFByb21pc2U8dW5kZWZpbmVkPiB0
cnVuY2F0ZShbRW5mb3JjZVJhbmdlXSB1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSk7CisgICAgUHJv
bWlzZTx1bnNpZ25lZCBsb25nIGxvbmc+IGdldFNpemUoKTsKKyAgICBQcm9taXNlPHVuZGVmaW5l
ZD4gZmx1c2goKTsKKyAgICBQcm9taXNlPHVuZGVmaW5lZD4gY2xvc2UoKTsKK307CisKK2RpY3Rp
b25hcnkgRmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMgeworICAgIFtFbmZvcmNlUmFuZ2VdIHVu
c2lnbmVkIGxvbmcgbG9uZyBhdDsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzEzNTFiZjJkOTRlNWYzYTdl
NjFjNjk5Y2FiODI3YTE3OGI2MTc1ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50
aWZpZXIuaApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2VudW0gRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyVHlwZSB7IH07Cit1c2lu
ZyBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVy
PEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllclR5cGU+OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5jcHAKaW5kZXggNDVlYjNlYzk1Yjc2NTFlN2MxNWUzMGE2OTljNDc0YjY1NTJk
NDNjZC4uZmE3ZjY2OTM1NzE2MGI3OTFkYzI1YTFhMzIwODNkYTI2OTg1NjZiNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAgLTY0
LDcgKzY0LDcgQEAgdm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnNjb3Bl
Q2xvc2VkKCkKICAgICBmb3IgKGF1dG8mIGNhbGxiYWNrIDogZ2V0SGFuZGxlQ2FsbGJhY2tzLnZh
bHVlcygpKQogICAgICAgICBjYWxsYmFjayhFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9
KTsKIAotICAgIGF1dG8gcmVtb3ZlRW50cnlDYWxsYmFja3MgPSBzdGQ6OmV4Y2hhbmdlKG1fcmVt
b3ZlRW50cnlDYWxsYmFja3MsIHsgfSk7CisgICAgYXV0byByZW1vdmVFbnRyeUNhbGxiYWNrcyA9
IHN0ZDo6ZXhjaGFuZ2UobV92b2lkQ2FsbGJhY2tzLCB7IH0pOwogICAgIGZvciAoYXV0byYgY2Fs
bGJhY2sgOiByZW1vdmVFbnRyeUNhbGxiYWNrcy52YWx1ZXMoKSkKICAgICAgICAgY2FsbGJhY2so
RXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CiAKQEAgLTE0NywxOSArMTQ3LDE5IEBA
IHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpkaWRHZXRIYW5kbGUoQ2Fs
bGJhY2tJZGVudGlmaWVyIGNhbGxiYWNrCiAgICAgICAgIGNhbGxiYWNrKFdURk1vdmUocmVzdWx0
KSk7CiB9CiAKLXZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpyZW1vdmVF
bnRyeShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHksIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bjo6UmVtb3ZlRW50cnlDYWxsYmFjayYmIGNhbGxiYWNrKQordm9pZCBXb3JrZXJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb246OnJlbW92ZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
IGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwg
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJiBjYWxsYmFjaykKIHsK
ICAgICBpZiAoIW1fc2NvcGUpCiAgICAgICAgIHJldHVybiBjYWxsYmFjayhFeGNlcHRpb24geyBJ
bnZhbGlkU3RhdGVFcnJvciB9KTsKIAogICAgIGF1dG8gY2FsbGJhY2tJZGVudGlmaWVyID0gQ2Fs
bGJhY2tJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUoKTsKLSAgICBtX3JlbW92ZUVudHJ5
Q2FsbGJhY2tzLmFkZChjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUoY2FsbGJhY2spKTsKKyAg
ICBtX3ZvaWRDYWxsYmFja3MuYWRkKGNhbGxiYWNrSWRlbnRpZmllciwgV1RGTW92ZShjYWxsYmFj
aykpOwogCiAgICAgY2FsbE9uTWFpblRocmVhZChbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3JrZXJU
aHJlYWQgPSBSZWYgeyBtX3Njb3BlLT50aHJlYWQoKSB9LCBtYWluVGhyZWFkQ29ubmVjdGlvbiA9
IG1fbWFpblRocmVhZENvbm5lY3Rpb24sIGlkZW50aWZpZXIsIG5hbWUgPSBuYW1lLmlzb2xhdGVk
Q29weSgpLCBkZWxldGVSZWN1cnNpdmVseV0oKSBtdXRhYmxlIHsKICAgICAgICAgYXV0byBtYWlu
VGhyZWFkQ2FsbGJhY2sgPSBbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQgPSBXVEZN
b3ZlKHdvcmtlclRocmVhZCldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgICAgIHdv
cmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbY2FsbGJhY2tJZGVudGlmaWVy
LCByZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0KV0gKGF1dG8mIHNjb3BlKSBtdXRhYmxl
IHsKICAgICAgICAgICAgICAgICBpZiAoYXV0byBjb25uZWN0aW9uID0gZG93bmNhc3Q8V29ya2Vy
R2xvYmFsU2NvcGU+KHNjb3BlKS5maWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oKSkKLSAgICAg
ICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+ZGlkUmVtb3ZlRW50cnkoY2FsbGJhY2tJZGVudGlm
aWVyLCBXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLT5j
b21wbGV0ZVZvaWRDYWxsYmFjayhjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUocmVzdWx0KSk7
CiAgICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKICAgICAgICAg
fTsKIApAQCAtMTY3LDEyICsxNjcsNiBAQCB2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbjo6cmVtb3ZlRW50cnkoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaQogICAgIH0p
OwogfQogCi12b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6ZGlkUmVtb3Zl
RW50cnkoQ2FsbGJhY2tJZGVudGlmaWVyIGNhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8
dm9pZD4mJiByZXN1bHQpCi17Ci0gICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX3JlbW92ZUVudHJ5
Q2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJZGVudGlmaWVyKSkKLSAgICAgICAgY2FsbGJhY2soV1RG
TW92ZShyZXN1bHQpKTsKLX0KLQogdm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b246OnJlc29sdmUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgRmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIgb3RoZXJJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OlJlc29sdmVDYWxsYmFjayYmIGNhbGxiYWNrKQogewogICAgIGlmICghbV9zY29w
ZSkKQEAgLTE5OSw0ICsxOTMsMTIyIEBAIHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpkaWRSZXNvbHZlKENhbGxiYWNrSWRlbnRpZmllciBjYWxsYmFja0lkCiAgICAgICAg
IGNhbGxiYWNrKFdURk1vdmUocmVzdWx0KSk7CiB9CiAKK3ZvaWQgV29ya2VyRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpkaWRDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKENhbGxiYWNrSWRlbnRp
ZmllciBjYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlSWRlbnRpZmllcj4mJiByZXN1bHQpCit7CisgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBt
X2dldEFjY2Vzc0hhbmRsQ2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJZGVudGlmaWVyKSkKKyAgICAg
ICAgY2FsbGJhY2soV1RGTW92ZShyZXN1bHQpKTsKK30KKwordm9pZCBXb3JrZXJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb246OmNvbXBsZXRlSW50ZWdlckNhbGxiYWNrKENhbGxiYWNrSWRlbnRp
ZmllciBjYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPHVpbnQ2NF90PiYmIHJlc3VsdCkK
K3sKKyAgICBpZiAoYXV0byBjYWxsYmFjayA9IG1faW50ZWdlckNhbGxiYWNrcy50YWtlKGNhbGxi
YWNrSWRlbnRpZmllcikpCisgICAgICAgIGNhbGxiYWNrKFdURk1vdmUocmVzdWx0KSk7Cit9CisK
K3ZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjb21wbGV0ZVZvaWRDYWxs
YmFjayhDYWxsYmFja0lkZW50aWZpZXIgY2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25Pcjx2
b2lkPiYmIHJlc3VsdCkKK3sKKyAgICBpZiAoYXV0byBjYWxsYmFjayA9IG1fdm9pZENhbGxiYWNr
cy50YWtlKGNhbGxiYWNrSWRlbnRpZmllcikpCisgICAgICAgIGNhbGxiYWNrKFdURk1vdmUocmVz
dWx0KSk7Cit9CisKK3ZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVh
dGVTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIs
IEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0QWNjZXNzSGFuZGxlQ2FsbGJhY2smJiBj
YWxsYmFjaykKK3sKKyAgICBpZiAoIW1fc2NvcGUpCisgICAgICAgIHJldHVybiBjYWxsYmFjayhF
eGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKworICAgIGF1dG8gY2FsbGJhY2tJZGVu
dGlmaWVyID0gQ2FsbGJhY2tJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUoKTsKKyAgICBt
X2dldEFjY2Vzc0hhbmRsQ2FsbGJhY2tzLmFkZChjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUo
Y2FsbGJhY2spKTsKKworICAgIGNhbGxPbk1haW5UaHJlYWQoW2NhbGxiYWNrSWRlbnRpZmllciwg
d29ya2VyVGhyZWFkID0gUmVmIHsgbV9zY29wZS0+dGhyZWFkKCkgfSwgbWFpblRocmVhZENvbm5l
Y3Rpb24gPSBtX21haW5UaHJlYWRDb25uZWN0aW9uLCBpZGVudGlmaWVyXSgpIG11dGFibGUgewor
ICAgICAgICBhdXRvIG1haW5UaHJlYWRDYWxsYmFjayA9IFtjYWxsYmFja0lkZW50aWZpZXIsIHdv
cmtlclRocmVhZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKV0oYXV0byByZXN1bHQpIG11dGFibGUg
eworICAgICAgICAgICAgd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFtj
YWxsYmFja0lkZW50aWZpZXIsIHJlc3VsdCA9IGNyb3NzVGhyZWFkQ29weShyZXN1bHQpXSAoYXV0
byYgc2NvcGUpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGlmIChhdXRvIGNvbm5lY3Rpb24g
PSBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oc2NvcGUpLmZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbigpKQorICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLT5kaWRDcmVhdGVTeW5j
QWNjZXNzSGFuZGxlKGNhbGxiYWNrSWRlbnRpZmllciwgV1RGTW92ZShyZXN1bHQpKTsKKyAgICAg
ICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOworICAgICAgICB9OworCisg
ICAgICAgIG1haW5UaHJlYWRDb25uZWN0aW9uLT5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlKGlkZW50
aWZpZXIsIFdURk1vdmUobWFpblRocmVhZENhbGxiYWNrKSk7CisgICAgfSk7Cit9CisKK3ZvaWQg
V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpnZXRTaXplKEZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRp
ZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246
OkludGVnZXJDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIGlmICghbV9zY29wZSkKKyAgICAg
ICAgcmV0dXJuIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOworCisg
ICAgYXV0byBjYWxsYmFja0lkZW50aWZpZXIgPSBDYWxsYmFja0lkZW50aWZpZXI6OmdlbmVyYXRl
VGhyZWFkU2FmZSgpOworICAgIG1faW50ZWdlckNhbGxiYWNrcy5hZGQoY2FsbGJhY2tJZGVudGlm
aWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisKKyAgICBjYWxsT25NYWluVGhyZWFkKFtjYWxsYmFj
a0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFJlZiB7IG1fc2NvcGUtPnRocmVhZCgpIH0sIG1h
aW5UaHJlYWRDb25uZWN0aW9uID0gbV9tYWluVGhyZWFkQ29ubmVjdGlvbiwgaWRlbnRpZmllciwg
YWNjZXNzSGFuZGxlSWRlbnRpZmllcl0oKSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byBtYWluVGhy
ZWFkQ2FsbGJhY2sgPSBbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQgPSBXVEZNb3Zl
KHdvcmtlclRocmVhZCldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgICAgIHdvcmtl
clRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbY2FsbGJhY2tJZGVudGlmaWVyLCBy
ZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0KV0gKGF1dG8mIHNjb3BlKSBtdXRhYmxlIHsK
KyAgICAgICAgICAgICAgICBpZiAoYXV0byBjb25uZWN0aW9uID0gZG93bmNhc3Q8V29ya2VyR2xv
YmFsU2NvcGU+KHNjb3BlKS5maWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oKSkKKyAgICAgICAg
ICAgICAgICAgICAgY29ubmVjdGlvbi0+Y29tcGxldGVJbnRlZ2VyQ2FsbGJhY2soY2FsbGJhY2tJ
ZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAgICAgfSwgV29ya2VyUnVuTG9v
cDo6ZGVmYXVsdE1vZGUoKSk7CisgICAgICAgIH07CisKKyAgICAgICAgbWFpblRocmVhZENvbm5l
Y3Rpb24tPmdldFNpemUoaWRlbnRpZmllciwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV1RGTW92
ZShtYWluVGhyZWFkQ2FsbGJhY2spKTsKKyAgICB9KTsKK30KKwordm9pZCBXb3JrZXJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb246OnRydW5jYXRlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
IGlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NI
YW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXplLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b246OlZvaWRDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIGlmICghbV9zY29wZSkKKyAgICAg
ICAgcmV0dXJuIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOworCisg
ICAgYXV0byBjYWxsYmFja0lkZW50aWZpZXIgPSBDYWxsYmFja0lkZW50aWZpZXI6OmdlbmVyYXRl
VGhyZWFkU2FmZSgpOworICAgIG1fdm9pZENhbGxiYWNrcy5hZGQoY2FsbGJhY2tJZGVudGlmaWVy
LCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisKKyAgICBjYWxsT25NYWluVGhyZWFkKFtjYWxsYmFja0lk
ZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFJlZiB7IG1fc2NvcGUtPnRocmVhZCgpIH0sIG1haW5U
aHJlYWRDb25uZWN0aW9uID0gbV9tYWluVGhyZWFkQ29ubmVjdGlvbiwgaWRlbnRpZmllciwgYWNj
ZXNzSGFuZGxlSWRlbnRpZmllciwgc2l6ZV0oKSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byBtYWlu
VGhyZWFkQ2FsbGJhY2sgPSBbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQgPSBXVEZN
b3ZlKHdvcmtlclRocmVhZCldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgICAgIHdv
cmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbY2FsbGJhY2tJZGVudGlmaWVy
LCByZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0KV0gKGF1dG8mIHNjb3BlKSBtdXRhYmxl
IHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBjb25uZWN0aW9uID0gZG93bmNhc3Q8V29ya2Vy
R2xvYmFsU2NvcGU+KHNjb3BlKS5maWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oKSkKKyAgICAg
ICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+Y29tcGxldGVWb2lkQ2FsbGJhY2soY2FsbGJhY2tJ
ZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAgICAgfSwgV29ya2VyUnVuTG9v
cDo6ZGVmYXVsdE1vZGUoKSk7CisgICAgICAgIH07CisKKyAgICAgICAgbWFpblRocmVhZENvbm5l
Y3Rpb24tPnRydW5jYXRlKGlkZW50aWZpZXIsIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHNpemUs
IFdURk1vdmUobWFpblRocmVhZENhbGxiYWNrKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV29ya2Vy
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpmbHVzaChGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNj
ZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2Fs
bGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBpZiAoIW1fc2NvcGUpCisgICAgICAgIHJldHVybiBj
YWxsYmFjayhFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKworICAgIGF1dG8gY2Fs
bGJhY2tJZGVudGlmaWVyID0gQ2FsbGJhY2tJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUo
KTsKKyAgICBtX3ZvaWRDYWxsYmFja3MuYWRkKGNhbGxiYWNrSWRlbnRpZmllciwgV1RGTW92ZShj
YWxsYmFjaykpOworCisgICAgY2FsbE9uTWFpblRocmVhZChbY2FsbGJhY2tJZGVudGlmaWVyLCB3
b3JrZXJUaHJlYWQgPSBSZWYgeyBtX3Njb3BlLT50aHJlYWQoKSB9LCBtYWluVGhyZWFkQ29ubmVj
dGlvbiA9IG1fbWFpblRocmVhZENvbm5lY3Rpb24sIGlkZW50aWZpZXIsIGFjY2Vzc0hhbmRsZUlk
ZW50aWZpZXJdKCkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8gbWFpblRocmVhZENhbGxiYWNrID0g
W2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gV1RGTW92ZSh3b3JrZXJUaHJlYWQp
XShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxv
b3AoKS5wb3N0VGFza0Zvck1vZGUoW2NhbGxiYWNrSWRlbnRpZmllciwgcmVzdWx0ID0gY3Jvc3NU
aHJlYWRDb3B5KHJlc3VsdCldIChhdXRvJiBzY29wZSkgbXV0YWJsZSB7CisgICAgICAgICAgICAg
ICAgaWYgKGF1dG8gY29ubmVjdGlvbiA9IGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPihzY29w
ZSkuZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKCkpCisgICAgICAgICAgICAgICAgICAgIGNv
bm5lY3Rpb24tPmNvbXBsZXRlVm9pZENhbGxiYWNrKGNhbGxiYWNrSWRlbnRpZmllciwgV1RGTW92
ZShyZXN1bHQpKTsKKyAgICAgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkp
OworICAgICAgICB9OworCisgICAgICAgIG1haW5UaHJlYWRDb25uZWN0aW9uLT5mbHVzaChpZGVu
dGlmaWVyLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXVEZNb3ZlKG1haW5UaHJlYWRDYWxsYmFj
aykpOworICAgIH0pOworfQorCit2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bjo6Y2xvc2UoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Vm9pZENhbGxiYWNrJiYgY2FsbGJhY2spCit7CisgICAg
aWYgKCFtX3Njb3BlKQorICAgICAgICByZXR1cm4gY2FsbGJhY2soRXhjZXB0aW9uIHsgSW52YWxp
ZFN0YXRlRXJyb3IgfSk7CisKKyAgICBhdXRvIGNhbGxiYWNrSWRlbnRpZmllciA9IENhbGxiYWNr
SWRlbnRpZmllcjo6Z2VuZXJhdGVUaHJlYWRTYWZlKCk7CisgICAgbV92b2lkQ2FsbGJhY2tzLmFk
ZChjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUoY2FsbGJhY2spKTsKKworICAgIGNhbGxPbk1h
aW5UaHJlYWQoW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gUmVmIHsgbV9zY29w
ZS0+dGhyZWFkKCkgfSwgbWFpblRocmVhZENvbm5lY3Rpb24gPSBtX21haW5UaHJlYWRDb25uZWN0
aW9uLCBpZGVudGlmaWVyLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyXSgpIG11dGFibGUgeworICAg
ICAgICBhdXRvIG1haW5UaHJlYWRDYWxsYmFjayA9IFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtl
clRocmVhZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKV0oYXV0byByZXN1bHQpIG11dGFibGUgewor
ICAgICAgICAgICAgd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFtjYWxs
YmFja0lkZW50aWZpZXIsIHJlc3VsdCA9IGNyb3NzVGhyZWFkQ29weShyZXN1bHQpXSAoYXV0byYg
c2NvcGUpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGlmIChhdXRvIGNvbm5lY3Rpb24gPSBk
b3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oc2NvcGUpLmZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbigpKQorICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLT5jb21wbGV0ZVZvaWRDYWxs
YmFjayhjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUocmVzdWx0KSk7CisgICAgICAgICAgICB9
LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKKyAgICAgICAgfTsKKworICAgICAgICBt
YWluVGhyZWFkQ29ubmVjdGlvbi0+Y2xvc2UoaWRlbnRpZmllciwgYWNjZXNzSGFuZGxlSWRlbnRp
ZmllciwgV1RGTW92ZShtYWluVGhyZWFkQ2FsbGJhY2spKTsKKyAgICB9KTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5oCmluZGV4IGVjNjlkMTc1YTJmNzU5ZjA2YjNmMWM1NDc0NGQ3MTBjOWU2MWMz
YWMuLjkwY2JjYmY2NzNhNTg2ZjI3NDQyZjk2NDAzNDdhOTI1MjY1MGNmYzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTQ2LDggKzQ2
LDEwIEBAIHB1YmxpYzoKICAgICB1c2luZyBDYWxsYmFja0lkZW50aWZpZXIgPSBXb3JrZXJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb25DYWxsYmFja0lkZW50aWZpZXI7CiAgICAgdm9pZCBkaWRJ
c1NhbWVFbnRyeShDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPGJvb2w+JiYpOwogICAg
IHZvaWQgZGlkR2V0SGFuZGxlKENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXI+JiYpOwotICAgIHZvaWQgZGlkUmVtb3ZlRW50cnkoQ2FsbGJh
Y2tJZGVudGlmaWVyLCBFeGNlcHRpb25Pcjx2b2lkPiYmKTsKICAgICB2b2lkIGRpZFJlc29sdmUo
Q2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxWZWN0b3I8U3RyaW5nPj4mJik7CisgICAg
dm9pZCBkaWRDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0
aW9uT3I8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyPiYmIHJlc3VsdCk7Cisg
ICAgdm9pZCBjb21wbGV0ZVZvaWRDYWxsYmFjayhDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlv
bk9yPHZvaWQ+JiYgcmVzdWx0KTsKKyAgICB2b2lkIGNvbXBsZXRlSW50ZWdlckNhbGxiYWNrKENh
bGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8dWludDY0X3Q+JiYgcmVzdWx0KTsKIAogcHJp
dmF0ZToKICAgICBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oV29ya2VyR2xvYmFs
U2NvcGUmLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsKQEAgLTU2LDE1ICs1
OCwyMyBAQCBwcml2YXRlOgogICAgIHZvaWQgaXNTYW1lRW50cnkoRmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OlNhbWVFbnRyeUNhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgZ2V0RmlsZUhh
bmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29s
IGNyZWF0ZUlmTmVjZXNzYXJ5LCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhhbmRs
ZUNhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgZ2V0RGlyZWN0b3J5SGFuZGxlKEZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNl
c3NhcnksIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0SGFuZGxlQ2FsbGJhY2smJikg
ZmluYWw7Ci0gICAgdm9pZCByZW1vdmVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb246OlJlbW92ZUVudHJ5Q2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBy
ZW1vdmVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1l
LCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZv
aWRDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIHJlc29sdmUoRmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OlJlc29sdmVDYWxsYmFjayYmKSBmaW5hbDsKIAorICAgIHZvaWQgY3JlYXRlU3lu
Y0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOjpHZXRBY2Nlc3NIYW5kbGVDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lk
IGdldFNpemUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpJbnRlZ2VyQ2Fs
bGJhY2smJikgZmluYWw7CisgICAgdm9pZCB0cnVuY2F0ZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXpl
LCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmKSBmaW5hbDsKKyAg
ICB2b2lkIGZsdXNoKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Vm9pZENh
bGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgY2xvc2UoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJikgZmluYWw7CisKICAgICBXZWFrUHRyPFdvcmtl
ckdsb2JhbFNjb3BlPiBtX3Njb3BlOwogICAgIFJlZlB0cjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24+IG1fbWFpblRocmVhZENvbm5lY3Rpb247CiAgICAgSGFzaE1hcDxDYWxsYmFja0lkZW50
aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6U2FtZUVudHJ5Q2FsbGJhY2s+IG1f
c2FtZUVudHJ5Q2FsbGJhY2tzOwogICAgIEhhc2hNYXA8Q2FsbGJhY2tJZGVudGlmaWVyLCBGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhhbmRsZUNhbGxiYWNrPiBtX2dldEhhbmRsZUNh
bGxiYWNrczsKLSAgICBIYXNoTWFwPENhbGxiYWNrSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOjpSZW1vdmVFbnRyeUNhbGxiYWNrPiBtX3JlbW92ZUVudHJ5Q2FsbGJhY2tz
OwogICAgIEhhc2hNYXA8Q2FsbGJhY2tJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb246OlJlc29sdmVDYWxsYmFjaz4gbV9yZXNvbHZlQ2FsbGJhY2tzOworICAgIEhhc2hNYXA8
Q2FsbGJhY2tJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEFjY2Vz
c0hhbmRsZUNhbGxiYWNrPiBtX2dldEFjY2Vzc0hhbmRsQ2FsbGJhY2tzOworICAgIEhhc2hNYXA8
Q2FsbGJhY2tJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxs
YmFjaz4gbV92b2lkQ2FsbGJhY2tzOworICAgIEhhc2hNYXA8Q2FsbGJhY2tJZGVudGlmaWVyLCBG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkludGVnZXJDYWxsYmFjaz4gbV9pbnRlZ2VyQ2Fs
bGJhY2tzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCAx
ZWZmNmFlYjM5YmEwMmE3MzVmMjE0YzM0ZmQ3MGMxMDMzZTkzZjEwLi45Mzk3ODFkMDMxNDlhNzlj
MGVlNDdkZmIyZTA5YjgwZTkyZWZlMDgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtNjEsNiArNjEsNyBA
QCBNb2R1bGVzL2ZldGNoL1dpbmRvd09yV29ya2VyR2xvYmFsU2NvcGVGZXRjaC5jcHAKIE1vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmNwcAogTW9kdWxl
cy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcAogTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuY3BwCitNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwCiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcAogTW9kdWxlcy9nZW9sb2Nh
dGlvbi9HZW9Ob3RpZmllci5jcHAKIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3Bw
CkBAIC0zMDQ2LDYgKzMwNDcsNyBAQCBKU0ZpbGVTeXN0ZW1FbnRyeUNhbGxiYWNrLmNwcAogSlNG
aWxlU3lzdGVtRmlsZUVudHJ5LmNwcAogSlNGaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKIEpTRmls
ZVN5c3RlbUhhbmRsZS5jcHAKK0pTRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwCiBKU0Zp
bGxNb2RlLmNwcAogSlNGb2N1c0V2ZW50LmNwcAogSlNGb2N1c09wdGlvbnMuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjE0
YzNkNzBjMmNiMTNkZmMxYzIwY2IyNjA4NTI2NzBmNGVkN2U1YS4uNTI1YmJhYjFlMDA4MWVjMDMy
ZTJhYmQyMjViMmI1Y2EyMWVmZDliZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjgxMCw2ICsyODEwLDcgQEAKIAkJOTMwQUFD
OUEyNTBFQjg0OTAwMTNEQTlGIC8qIENTU0NvbmRpdGlvblJ1bGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMEFBQzk4MjUwRUI4MTcwMDEzREE5RiAv
KiBDU1NDb25kaXRpb25SdWxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJOTMwQUFDOUYyNTBFRDQwOTAwMTNEQTlGIC8qIEpTQ1NTQ29uZGl0aW9u
UnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMw
QUFDOUQyNTBFRDQwOTAwMTNEQTlGIC8qIEpTQ1NTQ29uZGl0aW9uUnVsZS5oICovOyB9OwogCQk5
MzBBQUNBMjI1MEVENDExMDAxM0RBOUYgLyogSlNDU1NHcm91cGluZ1J1bGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMEFBQ0EwMjUwRUQ0MTEwMDEz
REE5RiAvKiBKU0NTU0dyb3VwaW5nUnVsZS5oICovOyB9OworCQk5MzBFNDQ4NjI3MEMzNzIyMDBE
RTdBQjcgLyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzBFNDQ4NDI3MEMzNzIxMDBE
RTdBQjcgLyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTMxNTNCREExNDE4MUY3
QTAwRkNGNUJFIC8qIG1pc3NpbmdJbWFnZUAyeC5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMTUzQkQ5MTQxODFGN0EwMEZDRjVCRSAvKiBtaXNz
aW5nSW1hZ2VAMngucG5nICovOyB9OwogCQk5MzE1M0JEQzE0MTk1OUJDMDBGQ0Y1QkUgLyogdGV4
dEFyZWFSZXNpemVDb3JuZXIucG5nIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MzE1M0JEQjE0MTk1OUJCMDBGQ0Y1QkUgLyogdGV4dEFyZWFSZXNpemVD
b3JuZXIucG5nICovOyB9OwogCQk5MzE1M0JFMjE0MTk1QTU3MDBGQ0Y1QkUgLyogbWlzc2luZ0lt
YWdlLnBuZyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTMxNTNCRTExNDE5NUE1NzAwRkNGNUJFIC8qIG1pc3NpbmdJbWFnZS5wbmcgKi87IH07CkBAIC0y
OTYzLDYgKzI5NjQsNyBAQAogCQk5M0Q2QjdBODI1NTFENDFGMDA1OEREM0EgLyogRHVtbXlTcGVl
Y2hSZWNvZ25pdGlvblByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5M0Q2QjdBNjI1NTFEM0VEMDA1OEREM0EgLyogRHVtbXlTcGVlY2hSZWNv
Z25pdGlvblByb3ZpZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJOTNEOUQ1M0MwREEyN0UxODAwNzcyMTZDIC8qIFJhbmdlQm91bmRhcnlQb2lu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNEOUQ1
M0IwREEyN0UxODAwNzcyMTZDIC8qIFJhbmdlQm91bmRhcnlQb2ludC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRTI0MUZGMEIyQjRFNDAwMEM3
MzJBMSAvKiBIVE1MRnJhbWVPd25lckVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTI0MUZFMEIyQjRFNDAwMEM3MzJBMSAvKiBIVE1MRnJh
bWVPd25lckVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQk5M0UyNjlBMjI3MEE1RDVEMDAyQzRGRjAgLyogRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzRTI2OTlGMjcwQTVENUMwMDJDNEZGMCAvKiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRTJB
MzA3MTIzRTlEQzAwMDlGRTEyQSAvKiBIVE1MUGFyc2VySWRpb21zLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0UyQTMwNTEyM0U5REMwMDA5RkUxMkEg
LyogSFRNTFBhcnNlcklkaW9tcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTkzRTVCMjY1MjQ1NUU5NkYwMDVDNTJEMCAvKiBBdHRyaWJ1dGVkU3Ry
aW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0U1
QjI2MzI0NTVFOTZGMDA1QzUyRDAgLyogQXR0cmlidXRlZFN0cmluZy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRjE5OEU1MDgyNDVFNTkwMDFF
OUFCQyAvKiBIVE1MRG9jdW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY1MjNEMjNDMDJERTQzOTYwMTg2MzVDQSAvKiBIVE1MRG9jdW1lbnQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTE2OTUs
NiArMTE2OTcsNyBAQAogCQk5MzBBQUNBMDI1MEVENDExMDAxM0RBOUYgLyogSlNDU1NHcm91cGlu
Z1J1bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDU1NHcm91cGluZ1J1
bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMwQUFDQTEyNTBFRDQxMTAwMTNE
QTlGIC8qIEpTQ1NTR3JvdXBpbmdSdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTQ1NTR3JvdXBpbmdSdWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTMwQzkwREMxOUNGOTY1MzAwRDZDMjFBIC8qIExlZ2FjeUlubGluZUl0ZXJhdG9yLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExlZ2FjeUlubGluZUl0ZXJh
dG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTMwRTQ0ODQyNzBDMzcyMTAw
REU3QUI3IC8qIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50
aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMxNTNCRDkxNDE4MUY3QTAw
RkNGNUJFIC8qIG1pc3NpbmdJbWFnZUAyeC5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSAibWlzc2luZ0ltYWdlQDJ4
LnBuZyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMTUzQkRCMTQxOTU5QkIwMEZD
RjVCRSAvKiB0ZXh0QXJlYVJlc2l6ZUNvcm5lci5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSB0ZXh0QXJlYVJlc2l6
ZUNvcm5lci5wbmc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMTUzQkUxMTQxOTVB
NTcwMEZDRjVCRSAvKiBtaXNzaW5nSW1hZ2UucG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRoID0gbWlzc2luZ0ltYWdlLnBu
Zzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExOTk0LDYgKzExOTk3LDkgQEAKIAkJ
OTNFMjI3REYwQUY1ODlBRDAwRDQ4MzI0IC8qIFN1YnJlc291cmNlTG9hZGVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN1YnJlc291cmNlTG9hZGVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNFMjQxRkUwQjJCNEU0MDAwQzczMkExIC8qIEhU
TUxGcmFtZU93bmVyRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBI
VE1MRnJhbWVPd25lckVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNF
MjQyNUUwQjJCNTA5NTAwQzczMkExIC8qIEhUTUxGcmFtZU93bmVyRWxlbWVudC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MRnJhbWVPd25lckVsZW1lbnQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0UyNjk5RDI3MEE1RDVCMDAyQzRGRjAg
LyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTNFMjY5OUYyNzBBNUQ1QzAwMkM0RkYwIC8qIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRTI2OUEwMjcwQTVE
NUMwMDJDNEZGMCAvKiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRTJBMzA0MTIzRTlEQzAwMDlGRTEyQSAv
KiBIVE1MUGFyc2VySWRpb21zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEhUTUxQYXJzZXJJZGlvbXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
M0UyQTMwNTEyM0U5REMwMDA5RkUxMkEgLyogSFRNTFBhcnNlcklkaW9tcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MUGFyc2VySWRpb21zLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTkzRTVCMjU0MjQ1MzZCMUUwMDVDNTJEMCAvKiBVUkxEZWNvbXBvc2l0
aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVSTERlY29tcG9z
aXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjM0MzgsNiArMjM0NDQs
MTAgQEAKIAkJCQk5MzJDOUJEOTI2REQ2MjYwMDA1M0IzREIgLyogRmlsZVN5c3RlbUhhbmRsZS5p
ZGwgKi8sCiAJCQkJOTM1NDI0MjcyNzAzQkM4ODAwNUNBNzJDIC8qIEZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyLmggKi8sCiAJCQkJOTM1NDI0MjkyNzAzQkNBRDAwNUNBNzJDIC8qIEZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5oICovLAorCQkJCTkzRTI2OUEwMjcwQTVENUMwMDJDNEZGMCAv
KiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAgKi8sCisJCQkJOTNFMjY5OUYyNzBBNUQ1
QzAwMkM0RkYwIC8qIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmggKi8sCisJCQkJOTNFMjY5
OUQyNzBBNUQ1QjAwMkM0RkYwIC8qIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbCAqLywK
KwkJCQk5MzBFNDQ4NDI3MEMzNzIxMDBERTdBQjcgLyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLmggKi8sCiAJCQkJOTM0NDNFN0IyNkU4QTZCQzAwNTg1MzhGIC8qIFN0b3Jh
Z2VNYW5hZ2VyK0ZpbGVTeXN0ZW1BY2Nlc3MuaWRsICovLAogCQkJCTkzNDQzRTdEMjZFOEE2QkMw
MDU4NTM4RiAvKiBTdG9yYWdlTWFuYWdlckZpbGVTeXN0ZW1BY2Nlc3MuaCAqLywKIAkJCQk5MzIz
M0M4NTI3MDU0Qzc4MDBCQkY0MUUgLyogV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
LmNwcCAqLywKQEAgLTMyNTYwLDYgKzMyNTcwLDggQEAKIAkJCQk5MzQ0M0U4ODI2RTk5NUM0MDA1
ODUzOEYgLyogRmlsZVN5c3RlbUhhbmRsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM1NDI0MkYy
NzAzQ0E1MTAwNUNBNzJDIC8qIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5MzU0MjQzMDI3MDNDQjg2MDA1Q0E3MkMgLyogRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0UyNjlBMjI3MEE1RDVEMDAyQzRGRjAg
LyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzMEU0
NDg2MjcwQzM3MjIwMERFN0FCNyAvKiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNUVCNjlGMEU4MURBRUIwMEIyNTk2NSAvKiBGaWxs
TGF5ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTcxMkJFNDgzMUZFODY1REQwMDIwMzFDQyAvKiBG
aWxsTW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODQ1RTcyRjgwRkQyNjFFRTAwQTg3RDc5IC8q
IEZpbHRlci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5kZXggZTgzNWRmN2ZmMGIyMjBkZWJhMDU4ZmQzYTg0
ZGY1ZDJjMjUxMzk1Yy4uMmJiOWE5MzliZmNiNmE5NzU4ODYyZjc4ODU2NmU3MmMwNGEwZTcwNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1l
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMu
aApAQCAtMTI0LDYgKzEyNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhGaWxl
U3lzdGVtRmlsZUVudHJ5KSBcCiAgICAgbWFjcm8oRmlsZVN5c3RlbUZpbGVIYW5kbGUpIFwKICAg
ICBtYWNybyhGaWxlU3lzdGVtSGFuZGxlKSBcCisgICAgbWFjcm8oRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGUpIFwKICAgICBtYWNybyhHYW1lcGFkKSBcCiAgICAgbWFjcm8oR2FtZXBhZEJ1dHRv
bikgXAogICAgIG1hY3JvKEdhbWVwYWRFdmVudCkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUVycm9yLmgK
aW5kZXggNDQzYzk1MTRjZDkzMjkxM2RkZTM0YzI3ZjZiNWI1NzIwMWEwYTQxZi4uMjg4MjQ0Zjhk
ZjBiYTRjNGUxYjdiMzgwZDM2MDkyZDM1YjBiNGM4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VFcnJv
ci5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSA8V2ViQ29y
ZS9FeGNlcHRpb25Db2RlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9FeGNlcHRpb25Pci5oPgogI2lu
Y2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMzQsMjYg
KzM0LDM3IEBAIGVudW0gY2xhc3MgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvciA6IHVpbnQ4X3Qgewog
ICAgIEZpbGVOb3RGb3VuZCwKICAgICBJbnZhbGlkTmFtZSwKICAgICBJbnZhbGlkTW9kaWZpY2F0
aW9uLAorICAgIEludmFsaWRTdGF0ZSwKICAgICBUeXBlTWlzbWF0Y2gsCiAgICAgVW5rbm93bgog
fTsKIAotaW5saW5lIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgY29udmVydFRvRXhjZXB0aW9uQ29k
ZShGaWxlU3lzdGVtU3RvcmFnZUVycm9yIGVycm9yKQoraW5saW5lIFdlYkNvcmU6OkV4Y2VwdGlv
biBjb252ZXJ0VG9FeGNlcHRpb24oRmlsZVN5c3RlbVN0b3JhZ2VFcnJvciBlcnJvcikKIHsKICAg
ICBzd2l0Y2ggKGVycm9yKSB7CiAgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpGaWxl
Tm90Rm91bmQ6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpFeGNlcHRpb25Db2RlOjpOb3RGb3Vu
ZEVycm9yOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6Tm90
Rm91bmRFcnJvciB9OwogICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxpZE1v
ZGlmaWNhdGlvbjoKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGU6OkludmFs
aWRNb2RpZmljYXRpb25FcnJvcjsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbiB7
IFdlYkNvcmU6OkludmFsaWRNb2RpZmljYXRpb25FcnJvciB9OwogICAgIGNhc2UgRmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvcjo6VHlwZU1pc21hdGNoOgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhj
ZXB0aW9uQ29kZTo6VHlwZUVycm9yOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9u
IHsgV2ViQ29yZTo6VHlwZUVycm9yIH07CiAgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9y
OjpJbnZhbGlkTmFtZToKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGU6OlVu
a25vd25FcnJvcjsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6
OlVua25vd25FcnJvciwgIk5hbWUgaXMgaW52YWxpZCIgfTsKKyAgICBjYXNlIEZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I6OkludmFsaWRTdGF0ZToKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2Vw
dGlvbiB7IFdlYkNvcmU6OkludmFsaWRTdGF0ZUVycm9yIH07CiAgICAgY2FzZSBGaWxlU3lzdGVt
U3RvcmFnZUVycm9yOjpVbmtub3duOgogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICByZXR1
cm4gV2ViQ29yZTo6RXhjZXB0aW9uQ29kZTo6VW5rbm93bkVycm9yOworICAgIHJldHVybiBXZWJD
b3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpVbmtub3duRXJyb3IgfTsKK30KKworaW5saW5lIFdl
YkNvcmU6OkV4Y2VwdGlvbk9yPHZvaWQ+IGNvbnZlcnRUb0V4Y2VwdGlvbk9yKHN0ZDo6b3B0aW9u
YWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gZXJyb3IpCit7CisgICAgaWYgKCFlcnJvcikKKyAg
ICAgICAgcmV0dXJuIHsgfTsKKworICAgIHJldHVybiBjb252ZXJ0VG9FeGNlcHRpb24oKmVycm9y
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkBAIC02Niw2ICs3Nyw3IEBAIHRlbXBsYXRl
PD4gc3RydWN0IEVudW1UcmFpdHM8V2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiB7CiAg
ICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6RmlsZU5vdEZvdW5kLAogICAg
ICAgICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWROYW1lLAogICAgICAg
ICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWRNb2RpZmljYXRpb24sCisg
ICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxpZFN0YXRlLAogICAg
ICAgICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlR5cGVNaXNtYXRjaCwKICAgICAg
ICAgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duCiAgICAgPjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmls
ZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3BwCmluZGV4IDIyYmMzZWY0ZWQyNzhhMTllMjQwNmM3OTQw
Y2ZiNmM4MzhkOTJkZWMuLmM4YTAxNDEzY2IzMzE5NjUzYThlYjdlNzJmMWVlYzM0ODNjNmE2OWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAj
aW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oIgogI2luY2x1ZGUgIkZpbGVTeXN0ZW1T
dG9yYWdlTWFuYWdlci5oIgorI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIApAQCAtMTM5LDQgKzE0MCw3OSBAQCBFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgRmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OnJlc29sdgogICAg
IHJldHVybiByZXN0UGF0aC5zcGxpdChwYXRoU2VwYXJhdG9yKTsKIH0KIAorRXhwZWN0ZWQ8V2Vi
Q29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRs
ZSgpCit7CisgICAgaWYgKCFtX21hbmFnZXIpCisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3Rl
ZChGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duKTsKKworICAgIGJvb2wgYWNxdWlyZWQg
PSBtX21hbmFnZXItPmFjcXVpcmVMb2NrRm9yRmlsZShtX3BhdGgsIG1faWRlbnRpZmllcik7Cisg
ICAgaWYgKCFhY3F1aXJlZCkKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I6OkludmFsaWRTdGF0ZSk7CisKKyAgICBBU1NFUlQoIW1fYWN0aXZlU3lu
Y0FjY2Vzc0hhbmRsZSk7CisgICAgbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlID0gV2ViQ29yZTo6
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUo
KTsKKyAgICByZXR1cm4gKm1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZTsKK30KKworRXhwZWN0ZWQ8
dWludDY0X3QsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxl
OjpnZXRTaXplKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBh
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyKQoreworICAgIGlmICghbV9tYW5hZ2VyKQorICAgICAgICBy
ZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bik7CisK
KyAgICBpZiAoIW1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSB8fCAqbV9hY3RpdmVTeW5jQWNjZXNz
SGFuZGxlICE9IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpCisgICAgICAgIHJldHVybiBtYWtlVW5l
eHBlY3RlZChGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duKTsKKworICAgIGF1dG8gc2l6
ZSA9IEZpbGVTeXN0ZW06OmZpbGVTaXplKG1fcGF0aCk7CisgICAgaWYgKCFzaXplKQorICAgICAg
ICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bik7
CisKKyAgICByZXR1cm4gc2l6ZS52YWx1ZSgpOworfQorCitzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjp0cnVuY2F0ZShXZWJDb3Jl
OjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRp
ZmllciwgdWludDY0X3Qgc2l6ZSkKK3sKKyAgICBpZiAoIW1fbWFuYWdlcikKKyAgICAgICAgcmV0
dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd247CisKKyAgICBpZiAoIW1fYWN0aXZl
U3luY0FjY2Vzc0hhbmRsZSB8fCAqbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlICE9IGFjY2Vzc0hh
bmRsZUlkZW50aWZpZXIpCisgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpV
bmtub3duOworCisgICAgYXV0byBoYW5kbGUgPSBGaWxlU3lzdGVtOjpvcGVuRmlsZShtX3BhdGgs
IEZpbGVTeXN0ZW06OkZpbGVPcGVuTW9kZTo6UmVhZFdyaXRlKTsKKyAgICBhdXRvIGNsb3NlRmls
ZVNjb3BlID0gbWFrZVNjb3BlRXhpdChbJl0geworICAgICAgICBGaWxlU3lzdGVtOjpjbG9zZUZp
bGUoaGFuZGxlKTsKKyAgICB9KTsKKworICAgIGF1dG8gcmVzdWx0ID0gRmlsZVN5c3RlbTo6dHJ1
bmNhdGVGaWxlKGhhbmRsZSwgc2l6ZSk7CisgICAgaWYgKCFyZXN1bHQpCisgICAgICAgIHJldHVy
biBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOworCisgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKK30KKworc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZTo6Zmx1c2goV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpCit7CisgICAgaWYgKCFtX21hbmFn
ZXIpCisgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOworCisg
ICAgaWYgKCFtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgfHwgKm1fYWN0aXZlU3luY0FjY2Vzc0hh
bmRsZSAhPSBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKQorICAgICAgICByZXR1cm4gRmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvcjo6VW5rbm93bjsKKworICAgIC8vIEZJWE1FOiB3aGVuIHdyaXRlIG9wZXJh
dGlvbiBpcyBpbXBsZW1lbnRlZCwgcGVyZm9ybSBhY3R1YWwgZmx1c2ggaGVyZS4KKyAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworfQorCitzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpjbG9zZShXZWJDb3JlOjpGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllcikKK3sKKyAgICBp
ZiAoIW1fbWFuYWdlcikKKyAgICAgICAgcmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVu
a25vd247CisKKyAgICBpZiAoIW1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSB8fCAqbV9hY3RpdmVT
eW5jQWNjZXNzSGFuZGxlICE9IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpCisgICAgICAgIHJldHVy
biBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOworCisgICAgbV9tYW5hZ2VyLT5yZWxl
YXNlTG9ja0ZvckZpbGUobV9wYXRoLCBtX2lkZW50aWZpZXIpOworICAgIG1fYWN0aXZlU3luY0Fj
Y2Vzc0hhbmRsZSA9IHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmggYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaAppbmRl
eCA4Nzk5MDkwN2Q5Yjg5YTUyM2Y3ZmYxZjU1MDcwYTU3MDY0MGFiM2IyLi5lNDdlZDNhMTZlZTk1
YWIxZDE0OTkzOGQxOTdmNjQ2M2Q5NzQ5MDE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUu
aApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUg
PFdlYkNvcmUvRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9X
ZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDksNiArNTAsMTIgQEAgcHVibGlj
OgogICAgIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVtb3ZlRW50cnko
Y29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5KTsKICAgICBFeHBlY3Rl
ZDxWZWN0b3I8U3RyaW5nPiwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzb2x2ZShXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcik7CiAKKyAgICBFeHBlY3RlZDxXZWJDb3JlOjpG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I+IGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKTsKKyAgICBFeHBlY3RlZDx1aW50NjRfdCwgRmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcj4gZ2V0U2l6ZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIpOworICAgIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcj4gdHJ1bmNhdGUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyLCB1aW50NjRfdCBzaXplKTsKKyAgICBzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I+IGZsdXNoKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
cik7CisgICAgc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBjbG9zZShXZWJD
b3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpOworCiBwcml2YXRlOgog
ICAgIEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lz
dGVtU3RvcmFnZUVycm9yPiByZXF1ZXN0Q3JlYXRlSGFuZGxlKElQQzo6Q29ubmVjdGlvbjo6VW5p
cXVlSUQsIFR5cGUsIFN0cmluZyYmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnkpOwogCkBA
IC01Nyw2ICs2NCw3IEBAIHByaXZhdGU6CiAgICAgVHlwZSBtX3R5cGU7CiAgICAgU3RyaW5nIG1f
cGF0aDsKICAgICBTdHJpbmcgbV9uYW1lOworICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyPiBtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5k
bGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFu
YWdlci5jcHAKaW5kZXggMWI3YTUxYTJmNjg4NDE1YzM5NmI1YjQ4ZmRjMDVmOTk1ZmM2ZDNkZS4u
YzM5NjUxYjkzMDkxMTJkZGQyMmQ4NTU5ZTY2MTAyZDRiZWEwYTc4MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0
ZW1TdG9yYWdlTWFuYWdlci5jcHAKQEAgLTg3LDE1ICs4NywyMSBAQCB2b2lkIEZpbGVTeXN0ZW1T
dG9yYWdlTWFuYWdlcjo6Y29ubmVjdGlvbkNsb3NlZChJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlE
IGNvbm5lYwogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgYXV0byBo
YW5kbGVzID0gbV9oYW5kbGVzQnlDb25uZWN0aW9uLmZpbmQoY29ubmVjdGlvbik7Ci0gICAgaWYg
KGhhbmRsZXMgPT0gbV9oYW5kbGVzQnlDb25uZWN0aW9uLmVuZCgpKQorICAgIGF1dG8gY29ubmVj
dGlvbkhhbmRsZXMgPSBtX2hhbmRsZXNCeUNvbm5lY3Rpb24uZmluZChjb25uZWN0aW9uKTsKKyAg
ICBpZiAoY29ubmVjdGlvbkhhbmRsZXMgPT0gbV9oYW5kbGVzQnlDb25uZWN0aW9uLmVuZCgpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBmb3IgKGF1dG8gaGFuZGxlSWRlbnRpZmllciA6IGhhbmRs
ZXMtPnZhbHVlKSB7Ci0gICAgICAgIGF1dG8gaGFuZGxlID0gbV9oYW5kbGVzLnRha2UoaGFuZGxl
SWRlbnRpZmllcik7Ci0gICAgICAgIG1fcmVnaXN0cnkudW5yZWdpc3RlckhhbmRsZShoYW5kbGVJ
ZGVudGlmaWVyKTsKKyAgICBhdXRvIGlkZW50aWZpZXJzID0gY29ubmVjdGlvbkhhbmRsZXMtPnZh
bHVlOworICAgIGZvciAoYXV0byBpZGVudGlmaWVyIDogaWRlbnRpZmllcnMpIHsKKyAgICAgICAg
YXV0byBoYW5kbGUgPSBtX2hhbmRsZXMudGFrZShpZGVudGlmaWVyKTsKKyAgICAgICAgbV9yZWdp
c3RyeS51bnJlZ2lzdGVySGFuZGxlKGlkZW50aWZpZXIpOwogICAgIH0KLSAgICBtX2hhbmRsZXNC
eUNvbm5lY3Rpb24ucmVtb3ZlKGhhbmRsZXMpOworCisgICAgbV9sb2NrTWFwLnJlbW92ZUlmKFsm
aWRlbnRpZmllcnNdKGF1dG8mIGVudHJ5KSB7CisgICAgICAgIHJldHVybiBpZGVudGlmaWVycy5j
b250YWlucyhlbnRyeS52YWx1ZSk7CisgICAgfSk7CisKKyAgICBtX2hhbmRsZXNCeUNvbm5lY3Rp
b24ucmVtb3ZlKGNvbm5lY3Rpb25IYW5kbGVzKTsKIH0KIAogRXhwZWN0ZWQ8V2ViQ29yZTo6Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0
ZW1TdG9yYWdlTWFuYWdlcjo6Z2V0RGlyZWN0b3J5KElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQg
Y29ubmVjdGlvbikKQEAgLTEwNSw0ICsxMTEsMjMgQEAgRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW0K
ICAgICByZXR1cm4gY3JlYXRlSGFuZGxlKGNvbm5lY3Rpb24sIEZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlOjpUeXBlOjpEaXJlY3RvcnksIFN0cmluZyB7IG1fcGF0aCB9LCB7IH0sIHRydWUpOwogfQog
Citib29sIEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlcjo6YWNxdWlyZUxvY2tGb3JGaWxlKGNvbnN0
IFN0cmluZyYgcGF0aCwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRp
ZmllcikKK3sKKyAgICBpZiAobV9sb2NrTWFwLmNvbnRhaW5zKHBhdGgpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICBtX2xvY2tNYXAuYWRkKHBhdGgsIGlkZW50aWZpZXIpOworICAgIHJl
dHVybiB0cnVlOworfQorCitib29sIEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlcjo6cmVsZWFzZUxv
Y2tGb3JGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBpZiAoYXV0byBsb2NrZWRCeUlkZW50aWZpZXIg
PSBtX2xvY2tNYXAuZ2V0KHBhdGgpOyBsb2NrZWRCeUlkZW50aWZpZXIgPT0gaWRlbnRpZmllcikg
eworICAgICAgICBtX2xvY2tNYXAucmVtb3ZlKHBhdGgpOworICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0
ZW1TdG9yYWdlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdl
L0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oCmluZGV4IDhiNDM4YjJlOTNkZjRhODQ0N2MzYjc3
NDBiYzU0Yzg3ZmNhNDMxOWYuLjFhZWJhOWRhZjc5NjhjNjhkOGZlOGIzYmU3YjY3NTUyODNkNzYx
MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxl
U3lzdGVtU3RvcmFnZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmgKQEAgLTQzLDEyICs0MywxNSBAQCBw
dWJsaWM6CiAgICAgY29uc3QgU3RyaW5nJiBnZXRQYXRoKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyKTsKICAgICB2b2lkIGNvbm5lY3Rpb25DbG9zZWQoSVBDOjpDb25uZWN0aW9u
OjpVbmlxdWVJRCk7CiAgICAgRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGdldERpcmVjdG9yeShJUEM6OkNvbm5lY3Rp
b246OlVuaXF1ZUlEKTsKKyAgICBib29sIGFjcXVpcmVMb2NrRm9yRmlsZShjb25zdCBTdHJpbmcm
IHBhdGgsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyKTsKKyAgICBib29sIHJl
bGVhc2VMb2NrRm9yRmlsZShjb25zdCBTdHJpbmcmIHBhdGgsIFdlYkNvcmU6OkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyKTsKIAogcHJpdmF0ZToKICAgICBTdHJpbmcgbV9wYXRoOwogICAgIEZp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkmIG1fcmVnaXN0cnk7CiAgICAgSGFzaE1hcDxJ
UEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlELCBIYXNoU2V0PFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyPj4gbV9oYW5kbGVzQnlDb25uZWN0aW9uOwogICAgIEhhc2hNYXA8V2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxGaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZT4+IG1faGFuZGxlczsKKyAgICBIYXNoTWFwPFN0cmluZywgV2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXI+IG1fbG9ja01hcDsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9y
YWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcAppbmRleCA2N2FlYmE1MjA2YTY2
MmM2MWQ5YjBlNTZkNTU5NTA5Y2IxMmE1MDI1Li4zNjg2MTc0MjgxODBkNzg0NmIyZDYyZjA2MGU5
OWU1ZGM3YTdkZDYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0
b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcApAQCAtMjI2LDUgKzIy
Niw2MCBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6cmVzb2x2ZShXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaQogICAgIGNvbXBsZXRpb25IYW5kbGVyKGhh
bmRsZS0+cmVzb2x2ZSh0YXJnZXRJZGVudGlmaWVyKSk7CiB9CiAKK3ZvaWQgTmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8
V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVt
U3RvcmFnZUVycm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgQVNTRVJUKCFSdW5M
b29wOjppc01haW4oKSk7CisKKyAgICBhdXRvIGhhbmRsZSA9IG1fZmlsZVN5c3RlbVN0b3JhZ2VI
YW5kbGVSZWdpc3RyeS0+Z2V0SGFuZGxlKGlkZW50aWZpZXIpOworICAgIGlmICghaGFuZGxlKQor
ICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIobWFrZVVuZXhwZWN0ZWQoRmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvcjo6VW5rbm93bikpOworCisgICAgY29tcGxldGlvbkhhbmRsZXIoaGFuZGxl
LT5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlKCkpOworfQorCit2b2lkIE5ldHdvcmtTdG9yYWdlTWFu
YWdlcjo6Z2V0U2l6ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChF
eHBlY3RlZDx1aW50NjRfdCwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQoreworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgYXV0byBo
YW5kbGUgPSBtX2ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnktPmdldEhhbmRsZShpZGVu
dGlmaWVyKTsKKyAgICBpZiAoIWhhbmRsZSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5k
bGVyKG1ha2VVbmV4cGVjdGVkKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24pKTsKKwor
ICAgIGNvbXBsZXRpb25IYW5kbGVyKGhhbmRsZS0+Z2V0U2l6ZShhY2Nlc3NIYW5kbGVJZGVudGlm
aWVyKSk7Cit9CisKK3ZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjp0cnVuY2F0ZUZvckFjY2Vz
c0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBX
ZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxl
SWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9w
dGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sK
KyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAgIGF1dG8gaGFuZGxlID0gbV9m
aWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5LT5nZXRIYW5kbGUoaWRlbnRpZmllcik7Cisg
ICAgaWYgKCFoYW5kbGUpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihGaWxlU3lz
dGVtU3RvcmFnZUVycm9yOjpVbmtub3duKTsKKworICAgIGNvbXBsZXRpb25IYW5kbGVyKGhhbmRs
ZS0+dHJ1bmNhdGUoYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgc2l6ZSkpOworfQorCit2b2lkIE5l
dHdvcmtTdG9yYWdlTWFuYWdlcjo6Zmx1c2hGb3JBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit7CisgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CisKKyAg
ICBhdXRvIGhhbmRsZSA9IG1fZmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeS0+Z2V0SGFu
ZGxlKGlkZW50aWZpZXIpOworICAgIGlmICghaGFuZGxlKQorICAgICAgICByZXR1cm4gY29tcGxl
dGlvbkhhbmRsZXIoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bik7CisKKyAgICBjb21w
bGV0aW9uSGFuZGxlcihoYW5kbGUtPmZsdXNoKGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpKTsKK30K
Kwordm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmNsb3NlQWNjZXNzSGFuZGxlKFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4p
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkp
OworCisgICAgYXV0byBoYW5kbGUgPSBtX2ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkt
PmdldEhhbmRsZShpZGVudGlmaWVyKTsKKyAgICBpZiAoIWhhbmRsZSkKKyAgICAgICAgcmV0dXJu
IGNvbXBsZXRpb25IYW5kbGVyKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24pOworCisg
ICAgY29tcGxldGlvbkhhbmRsZXIoaGFuZGxlLT5jbG9zZShhY2Nlc3NIYW5kbGVJZGVudGlmaWVy
KSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmggYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgK
aW5kZXggMWI4MTBkZjc4ZDczZDJmZjA5ZTg0ZGUyY2NiMjJiYTA2MTgwMTFjOC4uYTgxODg1MWZm
MTQ1Mzg2OGE3NGQxNzZmYjZjYjI4ZjIxYWIzMjMxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIu
aApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIk9yaWdpblN0b3JhZ2VNYW5hZ2VyLmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9DbGllbnRPcmlnaW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTY5LDYgKzcwLDExIEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBnZXREaXJlY3RvcnlIYW5kbGUoSVBDOjpDb25uZWN0aW9uJiwgV2ViQ29yZTo6RmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIsIFN0cmluZyYmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3Nhcnks
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAgICAgdm9pZCByZW1v
dmVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0
ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAgICB2b2lkIHJlc29s
dmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFZlY3Rv
cjxTdHJpbmc+LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOworICAgIHZvaWQgY3JlYXRl
U3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CisgICAgdm9p
ZCBnZXRTaXplRm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8dWludDY0X3QsIEZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I+KT4mJik7CisgICAgdm9pZCB0cnVuY2F0ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6
b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKKyAgICB2b2lkIGZsdXNoRm9y
QWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3Jl
OjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOworICAgIHZv
aWQgY2xvc2VBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIs
IFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7
CiAKICAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKICAgICBSZWY8V29ya1F1ZXVlPiBt
X3F1ZXVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdl
L05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXgg
NjJlNzQwM2NiYjcwMGFkOTZiYmViZTBmZWI4MjA1YzgxNjIyNGZmNy4uNGZlYTI3NjVmZDkyYTk4
MDYwY2QwNDAwNjJjNWU5NDU1YzgxOWZjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5h
Z2VyLm1lc3NhZ2VzLmluCkBAIC0zMiw0ICszMiwxMCBAQAogICAgIEdldERpcmVjdG9yeUhhbmRs
ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdHJpbmcg
bmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSkgLT4gKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJl
c3VsdCkgQXN5bmMgV2FudHNDb25uZWN0aW9uCiAgICAgUmVtb3ZlRW50cnkoV2ViQ29yZTo6Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nIG5hbWUsIGJvb2wgZGVs
ZXRlUmVjdXJzaXZlbHkpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6RmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvcj4gcmVzdWx0KSBBc3luYwogICAgIFJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIgdGFyZ2V0SWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBXZWJL
aXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKKworICAgIENyZWF0ZVN5
bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRp
ZmllcikgLT4gKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCisg
ICAgR2V0U2l6ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50
aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPHVpbnQ2NF90LCBXZWJL
aXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKKyAgICBUcnVuY2F0ZUZv
ckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlm
aWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNz
SGFuZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0
OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCisgICAgRmx1c2hGb3JBY2Nl
c3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwg
V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRs
ZUlkZW50aWZpZXIpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcj4gcmVzdWx0KSBBc3luYworICAgIENsb3NlQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSAtPiAoc3RkOjpv
cHRpb25hbDxXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IGVkOTRhM2VlNTY2
OGEzNDhiYzc2YWRiZDQyYjY1MDA3MWQxYjk1MWEuLjU5NmIzZmFiNjU4NjZiZGVmNTgxMjgwZDkx
MTYyMGMwNzRmNjdlZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5w
eQpAQCAtMjgyLDYgKzI4Miw3IEBAIGRlZiB0eXBlc190aGF0X2Nhbm5vdF9iZV9mb3J3YXJkX2Rl
Y2xhcmVkKCk6CiAgICAgICAgICdXZWJDb3JlOjpEcmFnQXBwbGljYXRpb25GbGFncycsCiAgICAg
ICAgICdXZWJDb3JlOjpGZXRjaElkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXInLAorICAgICAgICAnV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OkZyYW1lSWRlbnRpZmll
cicsCiAgICAgICAgICdXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMnLAogICAg
ICAgICAnV2ViQ29yZTo6SW1hZ2VEZWNvZGVySWRlbnRpZmllcicsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCmluZGV4IGIwNTRjOTIzOGJkZDJmY2Vj
ODEyOWIwMzA2YjUzYmJmYjFjN2RmOTMuLjdhMjM4YWNhNGMzOGQ2NzU1NGE3ZGE2M2VlN2RmZTI1
NmM3YmNkOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24uY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIHZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uOjpnZXRGaWxlSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVuCiAKICAgICBt
X2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VN
YW5hZ2VyOjpHZXRGaWxlSGFuZGxlKGlkZW50aWZpZXIsIG5hbWUsIGNyZWF0ZUlmTmVjZXNzYXJ5
KSwgW25hbWUsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcild
KGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFyZXN1bHQpCi0gICAgICAgICAg
ICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgY29udmVydFRv
RXhjZXB0aW9uQ29kZShyZXN1bHQuZXJyb3IoKSkgfSk7CisgICAgICAgICAgICByZXR1cm4gY29t
cGxldGlvbkhhbmRsZXIoY29udmVydFRvRXhjZXB0aW9uKHJlc3VsdC5lcnJvcigpKSk7CiAKICAg
ICAgICAgYXV0byBpZGVudGlmaWVyID0gcmVzdWx0LnZhbHVlKCk7CiAgICAgICAgIGlmICghaWRl
bnRpZmllci5pc1ZhbGlkKCkpCkBAIC04NCw3ICs4NCw3IEBAIHZvaWQgV2ViRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpnZXREaXJlY3RvcnlIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsCiAKICAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0
d29ya1N0b3JhZ2VNYW5hZ2VyOjpHZXREaXJlY3RvcnlIYW5kbGUoaWRlbnRpZmllciwgbmFtZSwg
Y3JlYXRlSWZOZWNlc3NhcnkpLCBbbmFtZSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKV0oYXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAoIXJl
c3VsdCkKLSAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNl
cHRpb24geyBjb252ZXJ0VG9FeGNlcHRpb25Db2RlKHJlc3VsdC5lcnJvcigpKSB9KTsKKyAgICAg
ICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihjb252ZXJ0VG9FeGNlcHRpb24ocmVzdWx0
LmVycm9yKCkpKTsKIAogICAgICAgICBhdXRvIGlkZW50aWZpZXIgPSByZXN1bHQudmFsdWUoKTsK
ICAgICAgICAgaWYgKCFpZGVudGlmaWVyLmlzVmFsaWQoKSkKQEAgLTk0LDE2ICs5NCwxMyBAQCB2
b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Z2V0RGlyZWN0b3J5SGFuZGxlKFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbAogICAgIH0pOwogfQogCi12b2lkIFdlYkZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6cmVtb3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vy
c2l2ZWx5LCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlJlbW92ZUVudHJ5
Q2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOjpyZW1vdmVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHks
IFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Vm9pZENhbGxiYWNrJiYgY29t
cGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCiAgICAgICAgIHJldHVy
biBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpVbmtub3du
RXJyb3IsICJDb25uZWN0aW9uIGlzIGxvc3QiIH0pOwogCiAgICAgbV9jb25uZWN0aW9uLT5zZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6UmVtb3ZlRW50
cnkoaWRlbnRpZmllciwgbmFtZSwgZGVsZXRlUmVjdXJzaXZlbHkpLCBbY29tcGxldGlvbkhhbmRs
ZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byBlcnJvcikgbXV0YWJsZSB7Ci0g
ICAgICAgIGlmIChlcnJvcikKLSAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihX
ZWJDb3JlOjpFeGNlcHRpb24geyBjb252ZXJ0VG9FeGNlcHRpb25Db2RlKGVycm9yLnZhbHVlKCkp
IH0pOwotCi0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CisgICAgICAgIHJldHVybiBj
b21wbGV0aW9uSGFuZGxlcihjb252ZXJ0VG9FeGNlcHRpb25PcihlcnJvcikpOwogICAgIH0pOwog
fQogCkBAIC0xMTQsMTAgKzExMSw2NiBAQCB2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbjo6cmVzb2x2ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcgogCiAgICAg
bV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdl
TWFuYWdlcjo6UmVzb2x2ZShpZGVudGlmaWVyLCBvdGhlcklkZW50aWZpZXIpLCBbY29tcGxldGlv
bkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byByZXN1bHQpIG11dGFi
bGUgewogICAgICAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9u
SGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBjb252ZXJ0VG9FeGNlcHRpb25Db2RlKHJlc3Vs
dC5lcnJvcigpKSB9KTsKKyAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihjb252
ZXJ0VG9FeGNlcHRpb24ocmVzdWx0LmVycm9yKCkpKTsKKworICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihXVEZNb3ZlKHJlc3VsdC52YWx1ZSgpKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0QWNjZXNzSGFuZGxlQ2FsbGJhY2smJiBjb21wbGV0aW9u
SGFuZGxlcikKK3sKKyAgICBpZiAoIW1fY29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuIGNvbXBs
ZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwg
IkNvbm5lY3Rpb24gaXMgbG9zdCIgfSk7CisKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5
bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpDcmVhdGVTeW5jQWNjZXNz
SGFuZGxlKGlkZW50aWZpZXIpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgICAgICBpZiAoIXJlc3VsdCkK
KyAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihjb252ZXJ0VG9FeGNlcHRpb24o
cmVzdWx0LmVycm9yKCkpKTsKIAogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJl
c3VsdC52YWx1ZSgpKSk7CiAgICAgfSk7CiB9CiAKK3ZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOjpnZXRTaXplKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBh
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBJbnRlZ2VyQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxl
cikKK3sKKyAgICBpZiAoIW1fY29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25I
YW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5l
Y3Rpb24gaXMgbG9zdCIgfSk7CisKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpHZXRTaXplRm9yQWNjZXNzSGFuZGxl
KGlkZW50aWZpZXIsIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpLCBbY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAg
ICAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihj
b252ZXJ0VG9FeGNlcHRpb24ocmVzdWx0LmVycm9yKCkpKTsKKworICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihyZXN1bHQudmFsdWUoKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uOjp0cnVuY2F0ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSwgVm9pZENhbGxi
YWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAg
ICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3Jl
OjpVbmtub3duRXJyb3IsICJDb25uZWN0aW9uIGlzIGxvc3QiIH0pOworCisgICAgbV9jb25uZWN0
aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6
VHJ1bmNhdGVGb3JBY2Nlc3NIYW5kbGUoaWRlbnRpZmllciwgYWNjZXNzSGFuZGxlSWRlbnRpZmll
ciwgc2l6ZSksIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
XShhdXRvIGVycm9yKSBtdXRhYmxlIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY29udmVy
dFRvRXhjZXB0aW9uT3IoZXJyb3IpKTsKKyAgICB9KTsKK30KKwordm9pZCBXZWJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb246OmZsdXNoKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRp
ZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBWb2lkQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3sKKyAgICBpZiAoIW1fY29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRp
b25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNv
bm5lY3Rpb24gaXMgbG9zdCIgfSk7CisKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNS
ZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpGbHVzaEZvckFjY2Vzc0hhbmRs
ZShpZGVudGlmaWVyLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSwgW2NvbXBsZXRpb25IYW5kbGVy
ID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8gZXJyb3IpIG11dGFibGUgeworICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihjb252ZXJ0VG9FeGNlcHRpb25PcihlcnJvcikpOworICAg
IH0pOworfQorCit2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y2xvc2UoV2Vi
Q29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIs
IFZvaWRDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmICghbV9jb25uZWN0
aW9uKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9u
IHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0IiB9KTsKKworICAg
IG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFn
ZU1hbmFnZXI6OkNsb3NlQWNjZXNzSGFuZGxlKGlkZW50aWZpZXIsIGFjY2Vzc0hhbmRsZUlkZW50
aWZpZXIpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0o
YXV0byBlcnJvcikgbXV0YWJsZSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGNvbnZlcnRU
b0V4Y2VwdGlvbk9yKGVycm9yKSk7CisgICAgfSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IGI2
MDFiZTY0MzUzZGFmYzc3N2M2YmNlNDJiMWU5ZjI5MTM5MjMwYzIuLmUwNzJlOWY5MzIzNGU3ZjJh
NmU2OTE3NGM3ZTY5NGYzOGZhZDVhNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTUxLDkgKzUxLDE1IEBAIHByaXZhdGU6CiAgICAgdm9pZCBp
c1NhbWVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbjo6U2FtZUVudHJ5Q2FsbGJhY2smJik7CiAgICAgdm9pZCBnZXRGaWxlSGFuZGxlKFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJv
b2wgY3JlYXRlSWZOZWNlc3NhcnksIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bjo6R2V0SGFuZGxlQ2FsbGJhY2smJik7CiAgICAgdm9pZCBnZXREaXJlY3RvcnlIYW5kbGUoV2Vi
Q29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9v
bCBjcmVhdGVJZk5lY2Vzc2FyeSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OjpHZXRIYW5kbGVDYWxsYmFjayYmKTsKLSAgICB2b2lkIHJlbW92ZUVudHJ5KFdlYkNvcmU6OkZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRl
UmVjdXJzaXZlbHksIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6UmVtb3Zl
RW50cnlDYWxsYmFjayYmKTsKKyAgICB2b2lkIHJlbW92ZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJz
aXZlbHksIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Vm9pZENhbGxiYWNr
JiYpOwogICAgIHZvaWQgcmVzb2x2ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbjo6UmVzb2x2ZUNhbGxiYWNrJiYpOwogCisgICAgdm9pZCBjcmVh
dGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBX
ZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEFjY2Vzc0hhbmRsZUNhbGxi
YWNrJiYpIGZpbmFsOworICAgIHZvaWQgZ2V0U2l6ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVy
LCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkludGVnZXJDYWxsYmFjayYm
KSBmaW5hbDsKKyAgICB2b2lkIHRydW5jYXRlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHVp
bnQ2NF90IHNpemUsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Vm9pZENh
bGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgZmx1c2goV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
ciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJikg
ZmluYWw7CisgICAgdm9pZCBjbG9zZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXZWJDb3Jl
OjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmKSBmaW5hbDsKKwog
ICAgIFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9yYWdlQ29u
bmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
U3RvcmFnZUNvbm5lY3Rpb24uY3BwCmluZGV4IDJhY2I1ZmFhZjNmNDZkN2Y4NGRiYmJiODczMzJk
MzM2NTQ5MDM3NmQuLmU3MDkwNTA3Mzk5MmFkZTRmNDk3MWE0NzYwYzAyNzM3ODM3ZmE4MTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9y
YWdlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlN0b3JhZ2VDb25uZWN0aW9uLmNwcApAQCAtNTYsNyArNTYsNyBAQCB2b2lkIFdl
YlN0b3JhZ2VDb25uZWN0aW9uOjpmaWxlU3lzdGVtR2V0RGlyZWN0b3J5KGNvbnN0IFdlYkNvcmU6
OkNsaWVudE9yaWdpbiYgbwogICAgIGF1dG8mIGNvbm5lY3Rpb24gPSBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCk7CiAg
ICAgY29ubmVjdGlvbi5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdl
TWFuYWdlcjo6RmlsZVN5c3RlbUdldERpcmVjdG9yeShvcmlnaW4pLCBbY29tcGxldGlvbkhhbmRs
ZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byByZXN1bHQpIG11dGFibGUgewog
ICAgICAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxl
cihXZWJDb3JlOjpFeGNlcHRpb24geyBjb252ZXJ0VG9FeGNlcHRpb25Db2RlKHJlc3VsdC5lcnJv
cigpKSB9KTsKKyAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihjb252ZXJ0VG9F
eGNlcHRpb24ocmVzdWx0LmVycm9yKCkpKTsKIAogICAgICAgICBhdXRvIGlkZW50aWZpZXIgPSBy
ZXN1bHQudmFsdWUoKTsKICAgICAgICAgaWYgKCFpZGVudGlmaWVyLmlzVmFsaWQoKSkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCBiNGI2NzY4NWZjYjAxYmI3ZTU1ZWVkMjA5MGFmNzU0YjM4OTA0Y2MyLi40Mjg4NDM5Y2Y5MTQ3
NDYxZjRlZTc4YTlmODk5NTllMWMxYjY4MDk1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEt
MTAtMDYgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1
cHBvcnQgZm9yIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzExODUKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzgzODQ3ODU5PgorCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAg
ICAgICAgKiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3MvcmVzb3VyY2VzL3N5bmMtYWNjZXNzLWhh
bmRsZS1iYXNpY3MuanM6IEFkZGVkLgorICAgICAgICAoZmluaXNoVGVzdCk6CisgICAgICAgIChn
ZXREaXJlY3RvcnkpOgorICAgICAgICAqIHN0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFj
Y2Vzcy1oYW5kbGUtYmFzaWNzLXdvcmtlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHN0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtYmFzaWNzLXdvcmtl
ci5odG1sOiBBZGRlZC4KKwogMjAyMS0xMC0wNSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2Vy
QGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjgzMzM1KTogTW9tZW50dW0gc2Ny
b2xsaW5nIGlzIG5vIGxvbmdlciBsb2NrZWQgdG8gYW4gYXhpcwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9D
aGFuZ2VMb2cKaW5kZXggN2M0Y2Y3YjRhOWUxYTNmZWRlNGExZjA1NzA3M2ZiMGVmZWM4NWVlNi4u
ZGE3MjZmMzcyN2Q5NWY3NGIyMmZlOWUyNTI1MTIyOWRkYjFmOWMwMyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMTAtMDYgIFNpaHVpIExpdSAg
PHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzExODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzODQ3ODU5PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvZmlsZS1zeXN0ZW0tYWNjZXNzL3NhbmRib3hlZF9GaWxlU3lzdGVtRmlsZUhhbmRs
ZS1zeW5jLWFjY2Vzcy1oYW5kbGUtbG9jay5odHRwcy50ZW50YXRpdmUud29ya2VyLWV4cGVjdGVk
LnR4dDoKKwogMjAyMS0xMC0wNSAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgW2Nzcy1wb3NpdGlvbi1zdGlja3ldIHNjcm9sbEludG9WaWV3IHNob3Vs
ZCBub3QgdGFrZSBpbnRvIGFjY291bnQgc3RpY2t5IHBvc2l0aW9uaW5nIG9mZnNldHMKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmlsZS1z
eXN0ZW0tYWNjZXNzL3NhbmRib3hlZF9GaWxlU3lzdGVtRmlsZUhhbmRsZS1zeW5jLWFjY2Vzcy1o
YW5kbGUtbG9jay5odHRwcy50ZW50YXRpdmUud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmlsZS1zeXN0ZW0tYWNjZXNzL3Nh
bmRib3hlZF9GaWxlU3lzdGVtRmlsZUhhbmRsZS1zeW5jLWFjY2Vzcy1oYW5kbGUtbG9jay5odHRw
cy50ZW50YXRpdmUud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCBiNDYyOGE3ZGYyMmRmZTg4YTdi
MzcxMmZmYjM2N2RmY2NlZWU4NzA0Li43ZGFkYzJkNGYwNmQ4NDRhMjEyZjY0MDRjMGQxYWI5ZjU2
MzcwY2I5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZpbGUtc3lzdGVtLWFjY2Vzcy9zYW5kYm94ZWRfRmlsZVN5c3RlbUZpbGVIYW5kbGUt
c3luYy1hY2Nlc3MtaGFuZGxlLWxvY2suaHR0cHMudGVudGF0aXZlLndvcmtlci1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9maWxl
LXN5c3RlbS1hY2Nlc3Mvc2FuZGJveGVkX0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLXN5bmMtYWNjZXNz
LWhhbmRsZS1sb2NrLmh0dHBzLnRlbnRhdGl2ZS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDQg
KzEsNCBAQAogCi1GQUlMIFRoZXJlIGNhbiBvbmx5IGJlIG9uZSBvcGVuIGFjY2VzcyBoYW5kbGUg
YXQgYW55IGdpdmVuIHRpbWUgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGgg
dmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBmaWxlSGFuZGxlLmNyZWF0ZVN5bmNBY2Nlc3NIYW5k
bGUgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnZmlsZUhhbmRsZS5jcmVhdGVTeW5jQWNjZXNzSGFu
ZGxlKCknLCAnZmlsZUhhbmRsZS5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlJyBpcyB1bmRlZmluZWQp
IgotRkFJTCBBbiBhY2Nlc3MgaGFuZGxlIGZyb20gb25lIGZpbGUgZG9lcyBub3QgaW50ZXJmZXJl
IHdpdGggdGhlIGNyZWF0aW9uIG9mIGFuIGFjY2VzcyBoYW5kbGUgb24gYW5vdGhlciBmaWxlIHBy
b21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVF
cnJvcjogZm9vRmlsZUhhbmRsZS5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlIGlzIG5vdCBhIGZ1bmN0
aW9uLiAoSW4gJ2Zvb0ZpbGVIYW5kbGUuY3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpJywgJ2Zvb0Zp
bGVIYW5kbGUuY3JlYXRlU3luY0FjY2Vzc0hhbmRsZScgaXMgdW5kZWZpbmVkKSIKK1BBU1MgVGhl
cmUgY2FuIG9ubHkgYmUgb25lIG9wZW4gYWNjZXNzIGhhbmRsZSBhdCBhbnkgZ2l2ZW4gdGltZQor
UEFTUyBBbiBhY2Nlc3MgaGFuZGxlIGZyb20gb25lIGZpbGUgZG9lcyBub3QgaW50ZXJmZXJlIHdp
dGggdGhlIGNyZWF0aW9uIG9mIGFuIGFjY2VzcyBoYW5kbGUgb24gYW5vdGhlciBmaWxlCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9yZXNvdXJjZXMv
c3luYy1hY2Nlc3MtaGFuZGxlLWJhc2ljcy5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5
c3RlbWFjY2Vzcy9yZXNvdXJjZXMvc3luYy1hY2Nlc3MtaGFuZGxlLWJhc2ljcy5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45NjcxMjVhNDZkYzZiNmVjM2ZjZmVmMTM5NGE4NjA4Yzg2NTI4NzJjCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3Jlc291cmNlcy9z
eW5jLWFjY2Vzcy1oYW5kbGUtYmFzaWNzLmpzCkBAIC0wLDAgKzEsODEgQEAKK2lmICh0aGlzLmlt
cG9ydFNjcmlwdHMpIHsKKyAgICBpbXBvcnRTY3JpcHRzKCcuLi8uLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC5qcycpOworfQorCitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNrcyBiYXNpYyBmdW50
aW9uYWxpdGllcyBvZiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS4iKTsKKwordmFyIHJvb3RI
YW5kbGUsIGZpbGVIYW5kbGUsIGFjY2Vzc0hhbmRsZTEsIGFjY2Vzc0hhbmRsZTIsIGNyZWF0ZUVy
cm9yOworCitmdW5jdGlvbiBmaW5pc2hUZXN0KGVycm9yKQoreworICAgIGlmIChlcnJvcikgewor
ICAgICAgICB0ZXN0RmFpbGVkKGVycm9yKTsKKyAgICB9CisgICAgZmluaXNoSlNUZXN0KCk7Cit9
CisKK2Z1bmN0aW9uIGdldERpcmVjdG9yeSgpIHsKKyAgICBuYXZpZ2F0b3Iuc3RvcmFnZS5nZXRE
aXJlY3RvcnkoKS50aGVuKChoYW5kbGUpID0+IHsKKyAgICAgICAgcm9vdEhhbmRsZSA9IGhhbmRs
ZTsKKyAgICAgICAgY3JlYXRlRmlsZUhhbmRsZShyb290SGFuZGxlKTsKKyAgICB9KS5jYXRjaCgo
ZXJyb3IpID0+IHsKKyAgICAgICAgZmluaXNoVGVzdChlcnJvcik7CisgICAgfSk7Cit9CisKK2Z1
bmN0aW9uIGNyZWF0ZUZpbGVIYW5kbGUoZnJvbUhhbmRsZSkgeworICAgIGZyb21IYW5kbGUuZ2V0
RmlsZUhhbmRsZSgic3luYy1hY2Nlc3MtaGFuZGxlLnR4dCIsIHsgImNyZWF0ZSIgOiB0cnVlIH0p
LnRoZW4oKGhhbmRsZSkgPT4geworICAgICAgICBmaWxlSGFuZGxlID0gaGFuZGxlOworICAgICAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImZpbGVIYW5kbGUubmFtZSIsICJzeW5jLWFjY2Vzcy1o
YW5kbGUudHh0Iik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZmlsZUhhbmRsZS5r
aW5kIiwgImZpbGUiKTsKKyAgICAgICAgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShmaWxlSGFuZGxl
KTsKKyAgICB9KS5jYXRjaCgoZXJyb3IpID0+IHsKKyAgICAgICAgZmluaXNoVGVzdChlcnJvcik7
CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoZnJvbUhhbmRs
ZSkgeworICAgIGZyb21IYW5kbGUuY3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpLnRoZW4oKGhhbmRs
ZSkgPT4geworICAgICAgICBhY2Nlc3NIYW5kbGUxID0gaGFuZGxlOworICAgICAgICBkZWJ1Zygi
YWNjZXNzSGFuZGxlMSBpcyBjcmVhdGVkIik7CisgICAgICAgIGdldFNpemUoYWNjZXNzSGFuZGxl
MSk7CisgICAgfSkuY2F0Y2goKGVycm9yKSA9PiB7CisgICAgICAgIGZpbmlzaFRlc3QoZXJyb3Ip
OworICAgIH0pOworfQorCitmdW5jdGlvbiBnZXRTaXplKGFjY2Vzc0hhbmRsZSkgeworICAgIGFj
Y2Vzc0hhbmRsZS5nZXRTaXplKCkudGhlbigocmVzdWx0KSA9PiB7CisgICAgICAgIHNpemUgPSBy
ZXN1bHQ7CisgICAgICAgIHNob3VsZEJlKCJzaXplIiwgIjAiKTsKKyAgICAgICAgY3JlYXRlU2Vj
b25kU3luY0FjZXNzSGFuZGxlKGZpbGVIYW5kbGUpOworICAgIH0pLmNhdGNoKChlcnJvcikgPT4g
eworICAgICAgICBmaW5pc2hUZXN0KGVycm9yKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gY3Jl
YXRlU2Vjb25kU3luY0FjZXNzSGFuZGxlKGZyb21IYW5kbGUpIHsKKyAgICBmcm9tSGFuZGxlLmNy
ZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKS50aGVuKChoYW5kbGUpID0+IHsKKyAgICAgICAgYWNjZXNz
SGFuZGxlMiA9IGhhbmRsZTsKKyAgICAgICAgLy8gU2Vjb25kIGNyZWF0aW9uIHNob3VsZCBzdWNj
ZWVkLgorICAgICAgICBkZWJ1ZygiYWNjZXNzSGFuZGxlMiBpcyBjcmVhdGVkIik7CisgICAgICAg
IGZpbmlzaFRlc3QoKTsKKyAgICB9KS5jYXRjaCgoZXJyb3IpID0+IHsKKyAgICAgICAgLy8gRmly
c3QgY3JlYXRpb24gc2hvdWxkIGZhaWwgYXMgdGhlcmUgaXMgYW4gYWN0aXZlIGhhbmRsZS4KKyAg
ICAgICAgY3JlYXRlRXJyb3IgPSBlcnJvcjsKKyAgICAgICAgZGVidWcoImFjY2Vzc0hhbmRsZTIg
Y2Fubm90IGJlIGNyZWF0ZWQiKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJjcmVh
dGVFcnJvci50b1N0cmluZygpIiwgIkludmFsaWRTdGF0ZUVycm9yOiBUaGUgb2JqZWN0IGlzIGlu
IGFuIGludmFsaWQgc3RhdGUuIik7CisgICAgICAgIGNsb3NlKCk7CisgICAgfSk7Cit9CisKK2Z1
bmN0aW9uIGNsb3NlKCkgeworICAgIGFjY2Vzc0hhbmRsZTEuY2xvc2UoKS50aGVuKChyZXN1bHQp
ID0+IHsKKyAgICAgICAgZGVidWcoImFjY2Vzc0hhbmRsZTEgaXMgY2xvc2VkIik7CisgICAgICAg
IGNyZWF0ZVNlY29uZFN5bmNBY2Vzc0hhbmRsZShmaWxlSGFuZGxlKTsKKyAgICB9KS5jYXRjaCgo
ZXJyb3IpID0+IHsKKyAgICAgICAgZmluaXNoVGVzdChlcnJvcik7CisgICAgfSk7Cit9CisKK2dl
dERpcmVjdG9yeSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVt
YWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1iYXNpY3Mtd29ya2VyLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtYmFz
aWNzLXdvcmtlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDc0ZjVkNzE1NTczMDdlNGJkMTRj
MTQ2YmE5M2FiZDUyZGI5YTRmNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtYmFzaWNzLXdvcmtlci1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxOCBAQAorW1dvcmtlcl0gVGhpcyB0ZXN0IGNoZWNrcyBiYXNp
YyBmdW50aW9uYWxpdGllcyBvZiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1N0YXJ0aW5nIHdvcmtlcjogcmVzb3VyY2VzL3N5bmMt
YWNjZXNzLWhhbmRsZS1iYXNpY3MuanMKK1BBU1MgW1dvcmtlcl0gZmlsZUhhbmRsZS5uYW1lIGlz
ICJzeW5jLWFjY2Vzcy1oYW5kbGUudHh0IgorUEFTUyBbV29ya2VyXSBmaWxlSGFuZGxlLmtpbmQg
aXMgImZpbGUiCitbV29ya2VyXSBhY2Nlc3NIYW5kbGUxIGlzIGNyZWF0ZWQKK1BBU1MgW1dvcmtl
cl0gc2l6ZSBpcyAwCitbV29ya2VyXSBhY2Nlc3NIYW5kbGUyIGNhbm5vdCBiZSBjcmVhdGVkCitQ
QVNTIFtXb3JrZXJdIGNyZWF0ZUVycm9yLnRvU3RyaW5nKCkgaXMgIkludmFsaWRTdGF0ZUVycm9y
OiBUaGUgb2JqZWN0IGlzIGluIGFuIGludmFsaWQgc3RhdGUuIgorW1dvcmtlcl0gYWNjZXNzSGFu
ZGxlMSBpcyBjbG9zZWQKK1tXb3JrZXJdIGFjY2Vzc0hhbmRsZTIgaXMgY3JlYXRlZAorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUt
YmFzaWNzLXdvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNz
L3N5bmMtYWNjZXNzLWhhbmRsZS1iYXNpY3Mtd29ya2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2ZlYzM2
YTU5NjBiNGFhYTIxYTJmODBhZDExY2VkNGI3ZWNlZDlkNQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtYmFz
aWNzLXdvcmtlci5odG1sCkBAIC0wLDAgKzEsOSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxzY3JpcHQ+Cit3b3JrZXIgPSBzdGFydFdvcmtlcigncmVzb3VyY2VzL3N5bmMtYWNjZXNz
LWhhbmRsZS1iYXNpY3MuanMnKTs8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>